PROGRAMAR EN VBA MACROS PARA EXCEL: Como Eliminar Filas en Base a Criterio

Como Eliminar Filas en Base a Criterio






Macro para Eliminar Filas de Excel en Base a Criterio, el ejemplo muestra como se recorren las filas de Excel eliminando todas aquellas filas que coincidan con el criterio señalado, en este caso el criterio es que la celda de una columna coincida con una palabra dada.

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 contenida en el ejemplo que se puede descargar desde el final, recorre todas la filas de Excel buscando en la columna G de la Hoja1 la cadena de texto que está en la celda H1, si la celda coincide con el Criterio, es decir que la celda correspondiente de la columna G es exactamente igual a H1, eliminará toda la fila.

En primer lugar se crea un objeto con la Hoja1 y se carga en la variable "stri" cual es el criterio que debe cumplir la celda para poder eliminar la fila, los códigos usados son:

Set a = Sheets("Hoja1")
stri = a.Cells(1, "H")

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también

Como Buscar Datos en Excel y Crear Link o Hyperlink a un Archivo


Como Abrir Dos Libros Copiar Datos de Uno y Guardar en Otro Libro

Como Buscar Datos en Excel con el Método Find

Luego se realiza un bucle entre la última fila con datos y la primer fila con datos, es decir se recorren las filas de abajo hacia arriba eliminando las filas que coincidan con el criterio, con el siguiente código:

For x = uf To 2 Step -1

If UCase(a.Cells(x, "C")) = UCase(stri) Then a.Cells(x, "A").EntireRow.Delete: conta = conta + 1

Next x

Se recorren las filas de abajo hacia arriba, porque de está manera se evita saltar filas con el bucle al ir eliminando las filas que coinciden con el criterio dato.

El ejemplo denominado Como Eliminar Filas en Base a Criterio se puede descargar desde el final y a continuación el código completo que contiene el ejemplo.


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")) = 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