Macro que elimine rango de filas vacias

18/11/2004 - 16:12 por dataVariabel | Informe spam
Saludos, necesito saber como hacer una macro que me elimine las filas o
rango de filas en blanco de una lista(variable en tamaño 11, 25, 35 filas
etc) y la agrupe una detras de la otra.
ejemplo.
A B C
1
2 xxx1 zzz2 rrr1
3
4
5
6 wtw ppp 000
7
8
9
10
11 qqq m12 999

A B C
1 xxx1 zzz2 rrr1
2 wtw ppp 000
3 qqq m12 999
realice esta, pero sólo me elimina una fila cada vez, asi que tengo que
ejecutarla varias veces para obtener el resultado deseado
Sub eliminaFilasenBlanco()
Set r2 = Range("a4:a150")
For n = 1 To r2.Rows.Count
Sheets("Hoja1").Select
If r2.Cells(n, 1) = "" Then ' si la fila esta vacia, eliminala
Set currentCell = r2.Cells(n, 1)
currentCell.EntireRow.Delete Shift:=xlUp
End If
Next n
End Sub
Atentamente : Jairo

Preguntas similare

Leer las respuestas

#1 David
18/11/2004 - 17:04 | Informe spam
Cambiemos un poco tu código. Tal vez sea más largo, pero
es una solución que te funcionará bien.

Primero:
De tu código, deduzco que una fila se ha de eliminar si
la celda de la columna A está vacía. Entonces, el código
podría ser:

Sub eliminaFilasenBlanco()
ActiveCell.SpecialCells(xlLastCell).Select
ff = ActiveCell.Row
Application.Goto Reference:="R1C1"
f = 0
While f = 0
If ActiveCell.Value = "" Then
Selection.EntireRow.Delete
ff = ff - 1
Else
ActiveCell.Offset(1, 0).Range("A1").Select
End If
n = ActiveCell.Row
If n > ff Then f = 1
Wend
End Sub

Ahora, si necesitas analizar más de una celda, por
ejemplo, las primeras 5 celdas de la fila, podrías
utilizar el siguiente código:

Sub eliminaFilasenBlanco2()
ActiveCell.SpecialCells(xlLastCell).Select
ff = ActiveCell.Row
Application.Goto Reference:="R1C1"
f = 0
While f = 0
bl = 0
For j = 1 To 5
If ActiveCell.Value <> "" Then bl = bl + 1
ActiveCell.Offset(0, 1).Range("A1").Select
Next
ActiveCell.Offset(0, -5).Range("A1").Select

If bl = 0 Then
Selection.EntireRow.Delete
ff = ff - 1
Else
ActiveCell.Offset(1, 0).Range("A1").Select
End If
n = ActiveCell.Row
If n > ff Then f = 1
Wend
End Sub

Si necesitas analizar un número diferente de celdas,
observa la línea del For, y la línea inmediatamente
siguiente a Next, puedes cambiar el 5 por el número que
quieras en ambas.

Saludos.


Saludos, necesito saber como hacer una macro que me


elimine las filas o
rango de filas en blanco de una lista(variable en tamaño


11, 25, 35 filas
etc) y la agrupe una detras de la otra.
ejemplo.
A B C
1
2 xxx1 zzz2 rrr1
3
4
5
6 wtw ppp 000
7
8
9
10
11 qqq m12 999

A B C
1 xxx1 zzz2 rrr1
2 wtw ppp 000
3 qqq m12 999
realice esta, pero sólo me elimina una fila cada vez,


asi que tengo que
ejecutarla varias veces para obtener el resultado deseado
Sub eliminaFilasenBlanco()
Set r2 = Range("a4:a150")
For n = 1 To r2.Rows.Count
Sheets("Hoja1").Select
If r2.Cells(n, 1) = "" Then ' si la fila esta vacia,


eliminala
Set currentCell = r2.Cells(n, 1)
currentCell.EntireRow.Delete Shift:=xlUp
End If
Next n
End Sub
Atentamente : Jairo


.

Respuesta Responder a este mensaje
#2 Daniel.M
18/11/2004 - 17:10 | Informe spam
Hola,

Ud necesita de contar del maximo hasta 1 (no de 1 hasta maximo).

Sub eliminaFilasenBlanco()
Dim n As Long, miRango As Range

Sheets("Hoja1").Select
Set miRango = Range("a4:a150")

For n = miRango.Rows.Count To 1 Step -1
If miRango(n, 1) = "" Then ' si la fila esta vacia, eliminala
miRango(n, 1).EntireRow.Delete Shift:=xlUp
End If
Next n
End Sub

Hay otra manera de eliminar las filas en blanco mas rapida.
Si la necesita, digame.

Saludos,

Daniel M.

"dataVariabel" wrote in message
news:
Saludos, necesito saber como hacer una macro que me elimine las filas o
rango de filas en blanco de una lista(variable en tamaño 11, 25, 35 filas
etc) y la agrupe una detras de la otra.
ejemplo.
A B C
1
2 xxx1 zzz2 rrr1
3
4
5
6 wtw ppp 000
7
8
9
10
11 qqq m12 999

A B C
1 xxx1 zzz2 rrr1
2 wtw ppp 000
3 qqq m12 999
realice esta, pero sólo me elimina una fila cada vez, asi que tengo que
ejecutarla varias veces para obtener el resultado deseado
Sub eliminaFilasenBlanco()
Set r2 = Range("a4:a150")
For n = 1 To r2.Rows.Count
Sheets("Hoja1").Select
If r2.Cells(n, 1) = "" Then ' si la fila esta vacia, eliminala
Set currentCell = r2.Cells(n, 1)
currentCell.EntireRow.Delete Shift:=xlUp
End If
Next n
End Sub
Atentamente : Jairo


Respuesta Responder a este mensaje
#3 Manuel Romero
18/11/2004 - 23:36 | Informe spam
Selecciona el rango, presiona F5 y selecciona celdas vacias, y luego elimina
las filas

Si lo que quieres es un macro esto es lo que grabe

Sub Macro1()
Range("A1:C11").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
Range("A1").Select
End Sub


"dataVariabel" escribió en el mensaje
news:
Saludos, necesito saber como hacer una macro que me elimine las filas o
rango de filas en blanco de una lista(variable en tamaño 11, 25, 35 filas
etc) y la agrupe una detras de la otra.
ejemplo.
A B C
1
2 xxx1 zzz2 rrr1
3
4
5
6 wtw ppp 000
7
8
9
10
11 qqq m12 999

A B C
1 xxx1 zzz2 rrr1
2 wtw ppp 000
3 qqq m12 999
realice esta, pero sólo me elimina una fila cada vez, asi que tengo que
ejecutarla varias veces para obtener el resultado deseado
Sub eliminaFilasenBlanco()
Set r2 = Range("a4:a150")
For n = 1 To r2.Rows.Count
Sheets("Hoja1").Select
If r2.Cells(n, 1) = "" Then ' si la fila esta vacia, eliminala
Set currentCell = r2.Cells(n, 1)
currentCell.EntireRow.Delete Shift:=xlUp
End If
Next n
End Sub
Atentamente : Jairo


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida