En este ejemplo se podrá observar una Macro de Excel que muestra Como Eliminar Filas Excel Cuya Celda Coincida Con Criterio Exacto o que el Texto Esté al Final de la Cadena de Caracteres.
La macro de Excel muestra como Eliminar filas en Excel que cumplen con determinado criterio, para ello evaluará la cadena de caracteres existente una celda, si el texto de la celda es igual a la palabra usada como criterio, elimina la fila de Excel en forma completa, la macro de Excel hará lo mismo si la palabra que se usa como criterio se encuentra al medio de la cadena de texto que está en la celda que se recorre en ese momento.
Todo lo publicado en nuestro canal de YouTube relacionado con macros para eliminar filas de excel lo encontrarás en el siguiente playlist encontrarás, recuerda suscribir y activar la campana para que YouTube te avise de nuevo contenido, 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 eliminar filas de Excel en base a criterio realizando un bucle
Para eliminar filas de Excel en base a criterio se debe realizar un bucle para recorrer filas desde la última fila con datos hasta la primer fila, evaluando cual es la palabra cadena de caracteres o string que existe en cada celda, si coincide la palabra usada como criterio, la macro de Excel VBA eliminará la fila entera.
uf = Range(«A» & Rows.Count).End(xlUp).Row
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también
Como enviar copiar un Gráfico de Excel A Word
Como Abrir un Formulario Desde un Listbox
Cómo quitar filas de Excel que coincidan con Palabras Exactas
Seguidamente se carga en la variable «stri» cual es la palabra que se debe buscar para eliminar la fila, que en este caso se llama «Licor» y se encuentra en la celda H1, posteriormente se inicial el bucle, se usan los siguientes códigos:
stri = a.Cells(1, «H»)
For x = uf To 2 Step -1
El código que verifica si la celda coincide con el criterio en base al cual se eliminará la fila de Excel es el siguiente:
If UCase(a.Cells(x, «C»)) = UCase(stri) Or UCase(a.Cells(x, «C»)) Like «*» & » » & UCase(stri) & » » & «*» Then a.Cells(x, «A»).EntireRow.Delete: conta = conta + 1
Si se analiza el código anterior se convier a mayúscula el texto de la celda de la columna C y fila que recorre el bucle en cada momento, se compara con una concatenación de string o texto, que traducido significa que si el texto de la celda coincide con la palabra usada como criterio en forma exacta o que dicha palabra se encuentre al medio de una cadena de caracteres, la fila se eliminará.
Para que resulte más claro supongamos que en las celdas de la columna C (usada en el ejemplo) se encuentra alguna de las siguientes palabras:
«Licor»
«Extracto de Licor Blanco»
«Licor Blanco»
«Blanco Licor»
La macro procederá a eliminar filas de Excel cuya celda coincidan con la palabra EXACTA, es decir eliminará cuyas celdas posean la palabra «Licor», eliminará las celdas cuya palabra se encuentre al medio de una cadena de texto o string es decir la fila que contenga «Extracto de Licor Blanco», porque la palabra licor está al medio, no eliminará celdas que contengan la palabra «Licor Blanco» ni «Blanco Licor» porque la palabra «Licor» está al principio y final respectivamente del texto contenido en la celda, para ver las distintas variantes mira el siguiente paylist.
Desde el link del final se descarga el ejemplo Como Eliminar Filas de Excel Iguales a un Criterio y Cuyo Criterio Está al FINAL de la Cadena de Texto o String.
Código que se inserta en un módulo
‘**************https://macrosenexcel.com **** https://youtube.com/programarexcel*********
Sub EliminaFila()
Dim Tex As Variant, Car As Variant, Lar As Integer
Application.ScreenUpdating = False
On Error Resume Next
Set a = Sheets(«Hoja1»)
uf = Range(«A» & Rows.Count).End(xlUp).Row
stri = a.Cells(1, «H»)
For x = uf To 2 Step -1
If UCase(a.Cells(x, «C»)) = UCase(stri) Or UCase(a.Cells(x, «C»)) Like «*» & » » & UCase(stri) & » » & «*» 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