En el post se presenta un ejemplo de Macro de Excel que muestra Como Eliminar Filas Cuya Celda Coincida Con Criterio Exacto o que el Texto Este al Principio de la Cadena de Caracteres; es decir evalúa cual es la cadena de caracteres de la celda, si el texto de la celda coincide completamente con la palabra que se usa como criterio, elimina la fila completa, también eliminará la fila completa, si la palabra que se usa como criterio se encuentre al principio de la cadena de texto que está en la celda que se evalúa.
En el siguiente playlist encontrarás una serie de vídeos relacionados con distintas formas de eliminar filas en base a criterio.
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.
Suscribe a nuestro canal para que YouTube te avise cuando se suba nuevo contenido al canal, en el vídeo encontrarás una explicación gráfica y detallada del ejemplo que se muestra en este post.
La Macro determina la Última Fila con datos, si coincide, elimina fila completa
En este ejemplo se utiliza como criterio la palabra «Licor» que esta en la celda H1, se debe evaluar todas las palabras contenidas en la columna C, que es la columna donde está la descripción del producto.
La macro eliminará la fila completa en el caso de que el texto de la fila que recorre el bucle en cada momento y la columna C, coincida con la palabra licor sea que solamente en la celda de la columna C se encuentre la palabra «Licor» solamente o sea la primer palabra de una cadena de texto, es decir que si encuentra la cadena de texto «Licor de Naranja», SI se eliminará la fila, porque la palabra «Licor» aparece en el primer lugar en la cadena de Texto, pero si en la celda estuviera el texto «Naranja de Licor», la fila NO se eliminará porque la palabra «Licor» aparece al final de la cadena de caracteres.
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también
Como Llenar Combobox sin Duplicados o Datos Unicos
Carga de variable Stri, realizando Bucle
La macro en primer lugar establece la última fila con datos, ello tendiente a determinar el rango donde se encuentran los datos y hasta donde se debe evaluar las filas, se utiliza:
uf = Range(«A» & Rows.Count).End(xlUp).Row
Posteriormente se carga en la variable «stri» cual el la palabra que se usará como cirterio para evaluar si se elimina o no la fila, que como habíamos anticipado se encontraba en la celda H1:
stri = a.Cells(1, «H»)
Se realiza luego un bucle for … next desde la última fila hasta la primer fila, es recomendable cuando se eliminan filas, hacer que la macro elimine de abajo hacia arriaba, ya que de lo contrario se deberá apelar a más códigos, ya que cuando se elimina una fila se desplaza hacia arriba y por ende en bucle puede saltar esa fila y no eliminarla a pesar que coincida con el criterio para eliminar fila, se usa:
For x = uf To 2 Step -1
…
Next x
Una vez que se empieza a recorrer fila por fila con el bucle, se debe ir evaluando si cumple o no con el criterio, es decir que la palabra «Licor» se encuentre ya sea en forma sola en la celda o sea parte de una cadena de texto que empieza con la palabra «Licor», no distingue mayúsculas ni minúsculas, a la vez que se va contando las filas eliminadas, el código es el siguiente:
f UCase(a.Cells(x, «C»)) Like UCase(stri) & «*» Then a.Cells(x, «A»).EntireRow.Delete: conta = conta + 1
Se puede descargar el ejemplo en forma Gratuita desde el final del post, a continuación se expone el código completo del ejemplo Como eliminar Filas en Base a Criterio que Coincida con el Criterio Exacto o la Palabra Buscada esté al Principio de la Cadena de Texto.
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»)) 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