¿Cómo eliminar de una lista las filas que tienen celdas en blanco?

Tengo el siguiente formato de archivo

Y última celda con datos es prácticamente la A1000000 o sea toda la hoja

Utilizo la siguiente macro pero no sé si haya una manera más rápida de hacerlo

Sub EliminarFilas()
Do While ActiveCell <> "Final"
    If ActiveCell = "" Then
        ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    Else
    End If
    ActiveCell.Offset(1, 0).Select
Loop
End Sub

3 Respuestas

Respuesta

Para eliminar celdas en blanco en Excel tenemos varias opciones para hacerlo, las cuales menciono a continuación:

  • Opción 1: Seleccionar celda por celda y borrarlas individualmente, pero si tienes miles de filas se convertirá en una tarea complicada.
  • Opción 2: Puedes ordenar alfabéticamente la columna, lo cual colocará todas las celdas en blanco juntas y las podrás eliminar. Sin embargo, si quieres mantener el orden de la lista, entonces no es la opción que buscas.
  • Opción 3: Puedes filtrar la lista por blancos y seleccionar las celdas en blanco para poder borrarlas.
  • Opción 4: Puedes utilizar el atajo que te mostraré a continuación:

Alternativa para eliminar celdas en blanco

Selecciona la columna que contiene las celdas en blanco:

Presiona F5 y se mostrará el cuadro de diálgo Ir a

Haz clic en el botón Especial y se mostrará el cuadro de diálogo Ir a Especial

Selecciona la opción Celdas en blanco y haz clic en Aceptar. Esto seleccionará automáticamente todas las celdas en blanco de la columna ó del rango que se había seleccinado previamente. Una vez que las celdas en blanco están seleccionadas puedes eliminarlas fácilmente con la tecla Suprimir.

Respuesta
1

.18/08/16

Buenas, Ramón

Prueba esta que no se desplaza entre celdas, no necesita el palabra "Final" y no refresca pantalla:

Sub DeleFila()
'Ramón, cambia aqu la columna donde están los datos, si fuese otra:
Coldatos = "A"
'Aplication.ScreenUpdating = False
UltFila = ActiveSheet.UsedRange.Rows.Count
For LaFila = UltFila To 1 Step -1
    LaCelda = Coldatos & LaFila
    If IsEmpty(Range(LaCelda)) Then
        Range(LaCelda).EntireRow.Delete
        Cont = Cont + 1
    End If
Next
MsgBox "Listo! " & Chr(10) & "Se eliminaron " & Cont & " lineas", vbInformation, "TERMINADO"
End Sub

Luego me dirás si te sirvió.

Un abrazo

Fernando

.

.

Buenas, de nuevo

Había dejado anulada la línea que evita el refresco de pantalla, para probar el funcionamiento.

Usa esta versión para que sea más veloz:

Sub DeleFila()
'Ramón, cambia aqu la columna donde están los datos, si fuese otra:
Coldatos = "A"
Application.ScreenUpdating = False
UltFila = ActiveSheet.UsedRange.Rows.Count
For LaFila = UltFila To 1 Step -1
    LaCelda = Coldatos & LaFila
    If IsEmpty(Range(LaCelda)) Then
        Range(LaCelda).EntireRow.Delete
        Cont = Cont + 1
    End If
Next
MsgBox "Listo! " & Chr(10) & "Se eliminaron " & iif(Cont,Cont & " lineas"," NINGUNA linea."), vbInformation, "TERMINADO"
End Sub

Espero acelere tu tarea

Abrazo

Fernando

Respuesta

Aquí te presento otra opción también sencilla siempre y cuando no haya datos 'duplicados' en tu columna (así se observa en tu imagen).

Selecciona la col de datos y desde menú Datos, Quitar duplicados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas