Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Eliminar Filas en Base a Color de Fuente #490

Eliminar filas en excel

En este post se muestra Como Eliminar Filas en Excel en Base a Color de Fuente, la macro de Excel recorre todas las filas en busca de las celdas cuya fuente tenga un color determinado, en caso de coincidir con el criterio de búsqueda elimina la fila de Excel completa.

La macro permite quitar o suprimir filas en base a un criterio que en el caso del ejemplo es el color de la fuente, la macro de Excel recorre desde la primer a la última fila con datos en busca de las filas de excel a eliminar.

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.

El vídeo verás la macro en acción con una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textboxcomo crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailtrabajando con filas, celdas, columnas, rangos y muchos ejemplos más.

En que consite el ejemplo que suprime filas en base a criterio color de fuente

El ejemplo se puede descargar en forma gratuita desde el final del post, la macro recorre, todas las filas de Excel, en este ejemplo va de la fila 2 a la filas 65.000, buscando datos cuyo color de fuente esta dado por el color del fondo de la celda H1, en este ejemplo, rojo.

Las celdas de la columna A son las que la macro evalúa para determinar si cumple con el criterio para eliminar filas en Excel, es decir que el color de la fuente sea rojo, en ese caso eliminará la fila de Excel en forma completa.

Explicación del código de Excel – VBA que permite quitar filas dependiendo del color del texto

En primer lugar la macro determina la última fila con datos para poder establecer el bucle desde que celda hasta que celda debe recorrer, eso se hace de la siguiente forma:

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

Luego procede a realizar un bucle recorriendo las filas de de la última con datos hasta la fila 2 que es la primer fila con datos, es decir recorre las filas de abajo hacia arriba , el código es el siguiente:

For x = uf To 2 Step -1
If a.Cells(x, «A»).Font.Color = colo Then a.Cells(x, «A»).EntireRow.Delete: conta = conta + 1
Next x

Posteriormente por cada una de las filas recorridas por el bucle se determina si el color ce fuente de la celda analizada coincide con el color rojo que es el criterio para eliminar las filas y cuyo número de color fue guardado en la variable «colo», en caso de coincidir el color del texto con el criterio, procede a eliminar la fila en excel, el código que se utiliza es:

If a.Cells(x, «A»).Font.Color = colo Then a.Cells(x, «A»).EntireRow.Delete: conta = conta + 1

Notese que la variable conta, irá contando la cantidad de registros eliminados para luego al final aparezca un Msgbox que muestra la cantidad de registros eliminados.

Código que se inserta en un módulo de Excel – VBA

Sub EliminaFila()
Application.ScreenUpdating = False
On Error Resume Next
Set a = Sheets(«Hoja1»)
uf = Range(«A» & Rows.Count).End(xlUp).Row
colo = a.Cells(1, «H»).Interior.Color
For x = uf To 2 Step -1
If a.Cells(x, «A»).Font.Color = colo 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:
Paypal: https://paypal.me/programarexcel
Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
5 based on 1 votes

Los comentarios están cerrados.