PROGRAMAR EN VBA MACROS DE EXCEL: Como Eliminar Filas que Coincidan Con Criterio Exacto y al Principio del Texto

Como Eliminar Filas que Coincidan Con Criterio Exacto y al Principio del Texto






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.

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.

  

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 es bastante simple en forma general se puede decir que determina la última fila con datos del rango que se desea evaluar, recorre todas las filas determinando cual es la palabra contenida en la fila que recorre el bucle en cada momento y columna C en este ejemplo; si la palabra coincide con el texto de la celda elimina la 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


Como Cargar un Datos y Saber Si Esta Duplicado

Como Eliminar Datos Duplicados en Excel con Macro VBA

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://programarexcel.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      
4.70/5 – 1379