Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Eliminar Filas Excel con Formato Negrita #471

Eliminar Filas Excel con Negritas

En el post se muestra Como Eliminar en Excel que contengan formato Negrita en en la celda analizada, se recorre todas las filas de la primer a la última en busca de las filas que coincida con el criterio de búsqueda, detectadas dichas filas son eliminadas.

Si quieres saber más sobre como eliminar filas en excel con criterio mira el siguiente playlist que tratan diversas formas de eliminar filas en excel en base a criterios ya sea filas con formulas, formatos, con determinadas palabras y mucho más.

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, suscribe 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 mas.

Como funciona el ejemplo practico de la macro como suprimir filas excel con formato negrita

Descargar el archivo, que se puede hacer desde el final del post, al abrir el libro de excel se muestran dos botones uno «Eliminar Fila» que ejecuta la macro para quitar las filas con formato negrita o bold en excel y otro «Ejecutar Nuevamente» para restablecer la base de datos para poder ejecutar la maco una y otra vez.

La macro hace un bucle recorriendo todas las filas desde la primer a la última fila con datos, el recorrido de las filas lo realiza de abajo hacia arriba, determina si la celdas de la columna y fila analizada tiene formato negrita, en ese caso suprime o elimina la fila de excel que coincide con el criterio establecido, en este caso tener formato negrita.

Explicación del código que permite a la macro eliminar filas de excel en base a criterio

Primero se determina cual es la última fila con datos, lo cual se hace con el siguiente código:

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

Luego se realiza un bucle entre la primer y última fila con datos determinada anteriormente, con la particularidad que se recorren las filas de abajo hacia arriba.

Esto es así porque si se elimina una fila el resto de filas sube y el bucle sigue con la siguiente fila por ende salta la fila por ejemplo 19 que ahora es fila 18 al ser eliminada la original fila 18.

Que sucede en el caso de que la fila 19 que ahora es 18 también deba ser eliminada, porque coincide con el criterio de eliminación de filas, si se recorrieran las filas de arriba hacia abajo y se da el caso planteado las filas se saltearían y no eliminaría filas que deberían ser eliminadas.

Si bien se puede saltar este problema se debe agregar más códigos, por ello es más sencillo hacerlo así es decir recorrer las filas de abajo hacia arriba y ello se consigue con el siguiente código:

For x = uf To 2 Step -1

Para establecer si la filas de excel se debe eliminar se determina si la celda analizada de la columna y fila correspondiente contiene formato negrita ello se determina así:

If a.Cells(x, «A»).Font.Bold = True Then

En caso de ser afirmativo es decir la celda contiene formato negrita se procede a eliminar la fila de excel con formato negrita de la siguiente manera:

a.Cells(x, «A»).EntireRow.Delete

Por último la macro termina emitiendo un mensaje, Msgbox (click para aprender más sobre Msgbox) y mostrando la cantidad de filas eliminadas cuya cuenta fueron acumulándose en la variable conta, así

conta = conta + 1

MsgBox («Se copio la base de datos nuevamente»), vbInformation, «AVISO»

Código y descarga del ejemplo como suprimir filas en excel con formato negrita

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

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, «A»).Font.Bold = True 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.

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