eliminar filas vacias en excel
Eliminar Filas y Columnas vacias
Descargar el fichero: LimpiaFilas.xlsm
E
s frecuente que un informe generado por otro programa se exporte a Excel, porejemplo en SAP. Muchos programas contemplan la exportación directa a Excel, y en otras
ocasiones lo que se hace es generar un fichero plano, de texto. Sea por un método o por otro,
habitualmente losinformes contienen filas vacías, y columnas vacías. Presentamos una macro
que elimina las filas y las columnas en blanco, dejando el informe compactado.
Hoja 1
Hoja 2
La macro que elimina lasfilas vacías es la siguiente.
En la macro recorremos todas las filas del rango usado (UsedRange). Se basa en detectar el
número de celdas vacías con la función CountA, que en español se denominaCONTARA. Esta
función es similar a la función CONTAR. La diferencia es que CONTAR cuenta únicamente
valores numéricos, y CONTARA cuenta todo tipo de celdas, sean estas numéricas o de texto.
Creamosla variable Cadena que por concatenación va acumulando todas las filas vacías que
se eliminarán. Al concatenar las diferentes filas las separamos por una coma (,) lo que hace
que al final tengamosque eliminar la última coma, cosa que se hace con la expresión:
Left(Cadena, Len(Cadena) - 1).
Esta macro aplicada a hojas en las que sea necesario eliminar muchas filas puede llegar a dar
un errorderivado de que la variable Cadena necesita una lóngitud mayor de la que es capaz
de soportar. Para evitar ese inconveniente hemos creado la macro de la hoja 3 que también
elimina las filas vacías,pero lo hace cada vez que las localiza.
Código:
Sub EliminarFilasVacias()
Dim Cadena As String, Fila As Long
With Worksheets("Hoja2") 'Nombre de la hoja
For Fila = 1 To .UsedRange.Rows.Count
IfWorksheetFunction.CountA(.Rows(Fila)) = 0 Then
Cadena = Cadena & Fila & ":" & Fila & ","
End If
Next Fila
If Cadena "" Then
Application.ScreenUpdating = False
.Range(Left(Cadena, Len(Cadena)...
Regístrate para leer el documento completo.