Visual Basic para Aplicaciones - Subir una fila en Excel (offset)

Life is soft - evento anual de software empresarial
   
Vista:

Subir una fila en Excel (offset)

Publicado por CyRuS (4 intervenciones) el 13/07/2009 12:02:10
Hola,
tengo un For en el que quiero que me busque las filas que están vacías y me las borre.

For Each cell In Range("A10:A1500")
If cell = "" Then
cell.EntireRow.Delete
cell.Offset(-1)
End If
Next

El problema está cuando hay más de una fila vacía seguida. Ya que me borra la primera que encuentra, pero la segunda se la salta y sigue por la tercera.
Para solucionarlo puse la sentencia Cell.Offset(-1) y todas las variantes posibles pero siempre me da error.

¿qué error tengo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:Subir una fila en Excel (offset)

Publicado por JuanC (431 intervenciones) el 13/07/2009 13:00:18
cuando elimina la fila se desplaza por lo que el offset no debiera ser -1 sino 0
otra opción es agrupar primero las filas vacias en un rango (usando Union)
y luego eliminar el total

Set rngTotal = Union(rng1, rng2....)
rngTotal.EntireRow.Delete

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Subir una fila en Excel (offset)

Publicado por CyRuS (4 intervenciones) el 13/07/2009 16:06:02
gracias lo probaré
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Subir una fila en Excel (offset)

Publicado por CyRuS (4 intervenciones) el 14/07/2009 17:13:54
No me funciona.
Cell.Offset (0,0) me da error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:Subir una fila en Excel (offset)

Publicado por JuanC (431 intervenciones) el 14/07/2009 18:14:14
Offset(0,0) es lo mismo que no desplazarce o sea que es la celda activa
pero cuidado porque cell lo eliminaste anteriormente, entonces no podés
activar la celda elimina, se entiende?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Subir una fila en Excel (offset)

Publicado por CyRuS (4 intervenciones) el 14/07/2009 20:51:23
totalmente,
voy a pasar del For each cell y usar un For normal y usar una variable que me diga en qué fila estoy,

gracias JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Subir una fila en Excel ( SIN offset)

Publicado por Audad (67 intervenciones) el 20/07/2009 17:43:09
Un saludo... desde Arequipa... donde un volcan te muestra lo diminuto que eres...
una modificacion a tu macro:

linea = 9
For Each cell In Range("a10:a1500")
linea = linea + 1
If Cells(linea, 1) = "" Then
Cells(linea, 1).EntireRow.Delete
linea = linea - 1
End If
Next
End Sub

funciono !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar