Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

borrar fila en excel

Estas en el tema de borrar fila en excel en el foro de Visual Basic clásico en Foros del Web. hola lo que pasa es que cargo info en un archivo excel, pero tambien me agrega unas filas en blanco la idea es sacarlas, use: ...
  #1 (permalink)  
Antiguo 06/12/2011, 09:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
borrar fila en excel

hola lo que pasa es que cargo info en un archivo excel, pero tambien me agrega unas filas en blanco la idea es sacarlas, use:

Código vb:
Ver original
  1. Rows.Select
  2.         Selection.Delete Shift:=xlUp



pero no funciono, me borra "el formato" pero no la fila, la idea es que haga esto:

CA CB
1 r
2 ñ
2 d

4 g
5 g

---------> pasar a esto -------->


CA CB
1 r
2 ñ
2 d
4 g
5 g

GRACIAS!

Última edición por carnero; 06/12/2011 a las 09:59
  #2 (permalink)  
Antiguo 06/12/2011, 10:50
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: borrar fila en excel

Hola, entiendo que deberías después de crear la hoja, ejecutar un bucle inverso desde la última hasta la primera, seleccionar la que este en blanco, suprimirla y continuar,

Esto es lo que hace Excel como sabrás cuando seleccionas y eliminas una Fila
Rows("7:7").Select
Selection.Delete Shift:=xlUp

Entonces, sería algo así:
For Fila = Ultima To 1 Step -1
IF ' Fila esta en Blanco según tus condicionantes Then
Row(str$(Fila) & ":" & str$(Fila)).Select
Selection.Delete Shift:=xlUp
End If
Next

Creo que así debería funcionar, independientemente de que si efectuas el proceso desde VB, es de suponer que debes interponer al Row y demás el nombre del Objeto Excel que hayas creado.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 06/12/2011, 11:20
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: borrar fila en excel

Cita:
Iniciado por erbuson Ver Mensaje
Hola, entiendo que deberías después de crear la hoja, ejecutar un bucle inverso desde la última hasta la primera, seleccionar la que este en blanco, suprimirla y continuar,

Esto es lo que hace Excel como sabrás cuando seleccionas y eliminas una Fila
Rows("7:7").Select
Selection.Delete Shift:=xlUp

Entonces, sería algo así:
For Fila = Ultima To 1 Step -1
IF ' Fila esta en Blanco según tus condicionantes Then
Row(str$(Fila) & ":" & str$(Fila)).Select
Selection.Delete Shift:=xlUp
End If
Next

Creo que así debería funcionar, independientemente de que si efectuas el proceso desde VB, es de suponer que debes interponer al Row y demás el nombre del Objeto Excel que hayas creado.

Saludos
como puedo saber las fila ? gracas
---------------------------------------------------------

no me funciono :P

grCIADS

Última edición por carnero; 06/12/2011 a las 11:33
  #4 (permalink)  
Antiguo 06/12/2011, 11:42
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: borrar fila en excel

¿ Como puedes saber la Fila ? No acabo de ver clara la pregunta, imagino que depende como lo estás poniendo en Excel.

Dim Fila As Single, Rango As String
For Fila = 20 To 1 Step -1
If Cells(Fila, 1) = "" Then
Rows(CStr(Fila) & ":" & CStr(Fila)).Select
Selection.Delete Shift:=xlUp
End If
Next
End Sub

Este ejemplo ejecutado en Excel funciona, comprueba que he tenido que cambiar la manera de indicarle el rango ya que de la otra manera me daba error
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Última edición por erbuson; 06/12/2011 a las 11:48
  #5 (permalink)  
Antiguo 06/12/2011, 12:28
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: borrar fila en excel

Cita:
Iniciado por erbuson Ver Mensaje
¿ Como puedes saber la Fila ? No acabo de ver clara la pregunta, imagino que depende como lo estás poniendo en Excel.

Dim Fila As Single, Rango As String
For Fila = 20 To 1 Step -1
If Cells(Fila, 1) = "" Then
Rows(CStr(Fila) & ":" & CStr(Fila)).Select
Selection.Delete Shift:=xlUp
End If
Next
End Sub

Este ejemplo ejecutado en Excel funciona, comprueba que he tenido que cambiar la manera de indicarle el rango ya que de la otra manera me daba error

muuuuuuuuuuuuuuuuuuuuchas gracias
  #6 (permalink)  
Antiguo 06/12/2011, 13:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: borrar fila en excel

me salto un error!


error en el metodo 'cells' del objeto'_Global'

en

If Cells(Fila, 1) = "" Then



que puede ser?

fila = 95
d = 95
  #7 (permalink)  
Antiguo 06/12/2011, 14:33
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: borrar fila en excel

Hola, el ejemplo está probado en Excel, pero no en VB, no se donde lo estás programando, si pones un trozo del código que utilizas, le doy un vistazo a ver si atino con el problema.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #8 (permalink)  
Antiguo 09/12/2011, 10:01
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: borrar fila en excel

Cita:
Iniciado por erbuson Ver Mensaje
Hola, el ejemplo está probado en Excel, pero no en VB, no se donde lo estás programando, si pones un trozo del código que utilizas, le doy un vistazo a ver si atino con el problema.

Saludos
despues de agregar los datos a una planilla excel pongo esto
Código vb:
Ver original
  1. Dim Fila As Single, Rango As String
  2.  
  3.  
  4.  
  5.  
  6. For Fila = List1.ListCount - 1 To 1 Step -1
  7. If Cells(Fila, 1) = "" Then
  8. Rows(CStr(Fila) & ":" & CStr(Fila)).Select
  9. Selection.Delete Shift:=xlUp
  10. End If
  11. Next

el error no sale siempre! solo aveces, yo creo que tiene que ver con el numero de filas!!
  #9 (permalink)  
Antiguo 09/12/2011, 10:38
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: borrar fila en excel

Hola, lo único raro que veo es que los valores de ListCount, como sabras pueden ir desde 0 hasta ListCount-1 ya que si por ejemplo ListCount vale 10, sus valores van de 0 a 9

Por otra parte creo que el Valor de Rows, debe empezar necesariamente en 1, por lo tanto en la comparacion debes tenerlo en cuenta, suponiendo que los valores los has puesto de la manera....

For I = 0 To List1.ListCount - 1
' FilaExcel = I + 1 para el elemento I del List
Next

A ver si van por ahí los tiros.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #10 (permalink)  
Antiguo 09/12/2011, 11:41
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: borrar fila en excel

For i = 0 To List1.ListCount
xlSh.Cells(i + 3, 1).Value = List1.List(i - 1) 'CODIGO
ETC

ESO?
  #11 (permalink)  
Antiguo 09/12/2011, 12:02
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: borrar fila en excel

Entiendo que aui hay un error ya que en el primer caso al empezar el For en 0 la resta de i-1 devuelve -1

List1.List(i - 1)

Por otra parte el For i = 0 To List1.ListCount debe ir hasta ListCount-1 ya que como te he comentado, si tiene 10 elementos van de 0 hasta 9 cuando ListCount vale 10

De Todos modos, se me ocurre una opcion mas simple que es no pasar el valor si este es nulo, por ejemplo así:

Código vb:
Ver original
  1. Dim FilaExcel As Single
  2. For i = 0 To List1.ListCount -1
  3.   If List1.List(i) <> "" Then
  4.       FilaExcel = FilaExcel + 1
  5.       xlSh.Cells(FilaExcel + 3, 1).Value = List1.List(i)   'CODIGO
  6.  End If
  7. Next
De este modo no tienes que comprobar nada después ¿ No ?
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #12 (permalink)  
Antiguo 14/12/2011, 09:51
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: borrar fila en excel

Cita:
Iniciado por erbuson Ver Mensaje
Entiendo que aui hay un error ya que en el primer caso al empezar el For en 0 la resta de i-1 devuelve -1

List1.List(i - 1)

Por otra parte el For i = 0 To List1.ListCount debe ir hasta ListCount-1 ya que como te he comentado, si tiene 10 elementos van de 0 hasta 9 cuando ListCount vale 10

De Todos modos, se me ocurre una opcion mas simple que es no pasar el valor si este es nulo, por ejemplo así:

Código vb:
Ver original
  1. Dim FilaExcel As Single
  2. For i = 0 To List1.ListCount -1
  3.   If List1.List(i) <> "" Then
  4.       FilaExcel = FilaExcel + 1
  5.       xlSh.Cells(FilaExcel + 3, 1).Value = List1.List(i)   'CODIGO
  6.  End If
  7. Next
De este modo no tienes que comprobar nada después ¿ No ?
esque desde la base de datos arroja el codigo 1 y no necesito que agregue esete dato al listado de excel, por eso me deja una linea en blanco.
al terminar el listado esta lleno de espacios en blanco que necesito sacar

me entiendes?
gracias
  #13 (permalink)  
Antiguo 14/12/2011, 13:43
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: borrar fila en excel

Pero ¿ No puedes efectuar la comparación antes de pasar el dato a Excel ? creo que es mas simple.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #14 (permalink)  
Antiguo 19/12/2011, 08:03
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Respuesta: borrar fila en excel

Cita:
Iniciado por erbuson Ver Mensaje
Pero ¿ No puedes efectuar la comparación antes de pasar el dato a Excel ? creo que es mas simple.
si puedo!, el problema es que me queda la fila en blanco, me entiendes?

Última edición por carnero; 19/12/2011 a las 08:20
  #15 (permalink)  
Antiguo 19/12/2011, 11:15
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: borrar fila en excel

Hola, de nuevo, lo que no entiendo es que si pasas los datos del List 1 a 1 hacia Excel, ¿ porque no puedes condicionar la fila que lo recibirá ?, a no ser que lo pases directamente todos.

Se me ocurre en otro caso que porque no haces un bucle inverso sobre el List antes de pasar hacia Excel y con el Remove vas eliminando los items que no quieras.

Algo mas o menos así:

Código vb:
Ver original
  1. Private Sub SinNulos()
  2.   Dim f As Single
  3.   For f = List1.ListCount - 1 To 0 Step -1
  4.     If List1.List(f) = "" Then List1.RemoveItem f
  5.   Next
  6. End Sub

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #16 (permalink)  
Antiguo 27/12/2011, 09:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: borrar fila en excel

Lo intentare

Etiquetas: excel, fila
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:30.