Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Eliminar Filas Que No Contengan Formulas #473

Eliminar Filas sin Formulas

Macro que suprime filas que no contienen formulas

En el presente ejemplo de macro se muestra como eliminar filas Excel que que no contienen formula, ello a través de una macro de Excel – VBA, la macro determinará si la celda analizada contiene una formula en caso negativo elimina la fila entera.

Para manejar Excel en forma eficiente haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

 

Como funciona el ejemplo para quitar filas Excel sin formulas

En la hoja donde están los datos se determinará la última fila con datos para realizar un bucle entre el último dato y el primero, es decir la macro recorrerá fila por fila desde la última a la primer fila con datos, osea de abajo hacia arriba, esto es así porque en el caso que elimine una fila se saltearía una fila, para que ello no suceda o se agrega más código para evitar saltarse filas al eliminarlas o se realiza de esta forma, es decir se recorre de abajo hacia arriba y se va eliminando las filas que coincidan con el criterio de búsqueda.

Luego se realiza el bucle con la estructura For … Next, en este ejemplo se analiza la columna G de cada fila, si establece si contiene una formula o no, en caso que no contenga formula la fila completa es eliminada. Al final de la macro sale un registro con la cantidad de filas excel eliminadas.

El otro código que está en el botón ejecutar nuevamente, solo copia la base de datos original que está en la hoja2 para poder ejecutar la macro una y otra vez.

Quizás también interese leer:

Como Eliminar Filas en Base a Color de Celda

Como Eliminar Datos Duplicados Criterios en Dos Columnas

 

Explicación paso a paso del código que por medio de macro elimina filas Excel

La macro de Excel para eliminar filas primero determinar la última fila con datos a los efectos de recorrer las filas de la primer a la última que contenga datos, ello se hace con el siguiente código

uf = Range(«A» & Rows.Count).End(xlUp).Row

Seguidamente se realiza un bucle utilizando la expresión For…Next, se recorre de la última a la primer fila con datos esto se logra de la siguiente manera:
For x = uf To 2 Step -1

Cada vez que el valor de x va aumentando, es decir cada vez que se analiza la siguiente fila, se determina si la celda de la columna «G» y fila analizada contiene datos, en ese caso, elimina la fila de Excel completa, con el siguiente código:

If a.Cells(x, «G»).HasFormula = False Then a.Cells(x, «A»).EntireRow.Delete: 

Por último sale un mensaje donde muestra la cantidad de filas de Excel eliminadas.

MsgBox («Se copio la base de datos nuevamente»), vbInformation, «AVISO»
 
 
Código VBA – Excel que permite eliminar filas sin formulas

Sub EliminaFila()
Application.ScreenUpdating = False
On Error Resume Next
Set a = Sheets(«Hoja1»)
uf = Range(«A» & Rows.Count).End(xlUp).Row
For x = uf To 2 Step -1
If a.Cells(x, «G»).HasFormula = False Then a.Cells(x, «A»).EntireRow.Delete: conta = conta + 1
Next x
MsgBox («Se eliminaron » & conta & » registros»), vbInformation, «AVISO»
Application.ScreenUpdating = True
End Sub

Sub DeNuevo()
Set a = Sheets(«Hoja1»)
uf = Range(«A» & Rows.Count).End(xlUp).Row
a.Range(«A1:G» & uf).Clear
Sheets(«Hoja2»).Range(«A:G»).Copy Destination:=a.Range(«A1»)
MsgBox («Se copio la base de datos nuevamente»), vbInformation, «AVISO»
End Sub


Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407