Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Eliminar Filas que Coincidan con Criterio Exacto y al Final del Texto #464

Eliminar Filas Excel con Criteriio

En este ejemplo se podrá observar una Macro de Excel que muestra Como Eliminar Filas Cuya Celda Coincida Con Criterio Exacto o que el Texto Este al Final de la Cadena de Caracteres; la macro evaluará la cadena de caracteres existente en una celda, si el texto de la celda coincide completamente con la palabra usada como criterio, elimina la fila completa, hará lo mismo, si la palabra que se usa como criterio se encuentra al final de la cadena de texto que está en la celda que se está analizando cada vez que el bucle recorre una celda.

 

En el siguiente playlist encontrarás una serie de vídeos relacionados con distintas formas de eliminar filas en base a criterio, sugiero ver las distintas variantes que existen, deja en los comentarios si requieres algún ejemplo que no se encuentre en dicho playlist.

Te recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, 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 verás la macro en acción, encontrarás una explicación gráfica y detallada del ejemplo que se muestra en este post.

Macro de Excel VBA Elimina Fila Completa que recorre el Bucle

La macro de Excel VBA elimina 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 se de el caso que en la celda de al Columna C se encuentre la palabra «Licor» solamente o que la última palabra de la cadena de caracteres de la celda analizada sea «Licor», es decir que si encuentra la cadena de texto «Licor al Coñac», NO se eliminará la fila, porque la palabra «Licor» aparece en el primer lugar en la cadena de Texto, pero si en la cadena de caracteres de la celda estuviera el texto «Naranja de Licor», la fila SI se eliminará porque la palabra «Licor» aparece al final de la cadena de caracteres.

 

La macro es sencilla realiza un bucle entre la primer fila y la última fila con datos, recorre cada una de las filas analizando cual es la cadena de caracteres de la Columna C y fila correspondiente, si dicha cadena de caracteres es igual a «Licor» o Dicha palabra se encuentre al final de una cadena de caracteres que pueda contener la celda, la fila completa será eliminada.

 
 

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

Quizá sea de utilidad también

Como Llenar Combobox sin Duplicados o Datos Unicos

Como Abrir un Formulario Desde un Listbox

Como recorrer una cadena de caracteres

Cómo eliminar Última fila con Datos

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

En la varialbe «stri» se carga la palabra que en este ejemplos se usará como criterio para evaluar si se elimina o no la fila:

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

La macro no distingue mayúsculas ni minúsculas, cuando 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 TERMINA con la palabra «Licor», a la vez que se va contando las filas eliminadas, el código es el siguiente:

If 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 FINAL 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      

 

 

  
 

 

 

 
 
 
 

 

 

 
 

 

 

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

En la varialbe «stri» se carga la palabra que en este ejemplos se usará como criterio para evaluar si se elimina o no la fila:

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

La macro no distingue mayúsculas ni minúsculas, cuando 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 TERMINA con la palabra «Licor», a la vez que se va contando las filas eliminadas, el código es el siguiente:

If 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 FINAL 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      

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
no rating based on 0 votes