✅
En este ejemplo se muestra Como Eliminar Filas de Exel en Base al Color de Celda con macro de Excel VBA, en otras palabras la Macro podrá Quitar las Filas de Excel que coincidan con un Determinado Color usado como criterio.
Encuentra más macros de Excel relacionadas con eliminar filas en base a criterio en el siguiente playlist encontrarás, suscribe al canal para que YouTube avise de nuevo contenido.
Si requieres operar las planillas u hojas de cálculo en forma eficaz 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.
Suscribe a nuestro canal y activa la campana para que YouTube te avise cuando se suba nuevo contenido al canal, en el vídeo verás la macro en acción, encontrarás una explicación gráfica y detallada del ejemplo que se muestra en este post.
En que consiste el ejemplo Como Eliminar Filas en Base a Color de Celda
El ejemplo es bastante sencillo, consiste en recorrer las filas de Excel desde la primer a la última fila con datos de una columna determinada, verificando si la celda correspondiente es igual al color elegido como criterio para eliminar filas de excel, en caso verdadero elimina la fila completa.
En este ejemplo el color se toma de la celda H1, es decir eliminará todas las celdas que sean iguales al color de la celda mencionada, en este caso amarillo, también se puede escribir en una variable el código del color, o si no se sabe el código del color se puede poner una celda con el color deseado y ejecutar el siguiente:
colo = a.Cells(1, «H»).Interior.Color
El código anterior permite determinar o saber cual es el color o código de la paleta de colores, como sucede en el caso del ejemplo que se presenta el color de la celda se determina y carga en una variable, pero si conocemos el código del color se puede usar directamente sin determinarlo mediante código de VBA.
Cual es la Codificación que permite Eliminar Filas en Base a Color de Celda
En primer se determina cual es la última fila con datos, esto se hace a través del siguiente código
uf = Range(«A» & Rows.Count).End(xlUp).Row
Luego se realiza un bucle entre al última fila con datos y la primer fila, es decir se viene eliminando las filas coincidente con el criterio de eliminación desde abajo hacia arriba, esto tiene una ventaja, ya que si el bucle se hace de arriba hacia abajo, es decir las filas se recorren de la menor a la mayor, puede provocar errores ya que al eliminar una fila todas se desplazan hacia arriba y el bucle saltaría o no verificaría la fila que se desplazó hacia arriba y en el caso que también coincidiera con el criterio de eliminación, no se eliminaría, porque se desplazó hacia arriba y el bucle ya recorrió esa fila, provocando que no se elimine la fila a pesar de coincidir con el criterio de búsqueda, este se puede salvar, pero se tiene que agregar más código, lo cual se soluciona fácilmente recorriendo las filas de abajo hacia arriba, se usa el siguiente código.
For x = uf To 2 Step -1
Step -1 es lo que permite al bucle recorrer las filas de Excel desde abajo hacia arriba.
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también
Como Eliminar Duplicados en Excel con Varios Criterios
Como Abrir un Formulario Desde un Listbox
Como Eliminar Filas cuyo Criterio se Encuentre en Cualquier Parte de la Cadena de Texto
Para eliminar una fila entera se usa el siguiente código, que es el que se aplica cuando la fila analizada se corresponde o es igual al color establecido como criterio para eliminar filas
a.Cells(x, «A»).EntireRow.Delete
Como Eliminar Filas En Base a Color de Celda, es el nombre del ejemplo cuyo archivo usado se puede descargar desde el post del final, seguidamente el código completo del ejemplo.
Código que se inserta en un módulo
‘**************https://macrosenexcel.com**** https://youtube.com/programarexcel*********
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»).Interior.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.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends