Custom Search

Macro recorre filas, busca dato y elimina



En este post voy a mostrar una macro que recorre las filas buscando un dato cuando lo encuentra elimina los datos de toda la fila, algo parecido se expuso en recorre filas busca y copia o quizás te ayude recorrer filas buscando y comparando datos, recorrer filas y contar celdas con datos, recorrer filas y copiar de la columna A a la B hay varios ejemplos que encontrarás aquí.

Antes de comenzar y si estás usando macros para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)

 

El ejemplo de macro de VBA, tiene por objeto tomar una serie de datos que se encuentran en la columna A hasta la última fila con datos, luego busca en los códigos o valores de la columna D, una vez que se encontró el dato se eliminan todos los registros de la fila.

Se debe notar que se realizan dos bucles, uno dentro del otro, el primer bucle permite recorrer todos los datos de la columna A, que luego son buscados en la Columna D, si no encuentra el dato en la columna D pasa a la fila siguiente hasta la última fila con datos, luego vuelve a tomar el segundo dato de la columna A y a Buscar en la columna D y así sucesivamente hasta que se llegue hasta el último dato o última fila con datos.

Encontrados los datos son eliminados de la hoja uno, se empieza en la fila dos y se analiza hasta la última celda ocupada.

Recomiendo un excelente libro sobre Excel el cual te ayudará a operar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. 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.

El ejemplo de macro que utiliza que recorre todas la filas, luego busca en un rango de datos y elimina registros, se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Macro" y se ejecuta la macro realizando la búsqueda de datos, el código es libre y se puede modificar y adaptar a la necesidad de cada uno.



Código que se inserta en un userform



Sub BuscarDatos()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim conta As Integer
f = 2
f1 = 2
f2 = 2
Sheets("Hoja2").Cells.Clear
Sheets("Hoja1").Range("D" & 1 & ":H" & 1).Copy Destination:=Sheets("Hoja2").Range("A" & 1)
Sheets("Hoja1").Select
Cells(f, 1).Select
While Cells(f, 1) <> Empty
dato = Cells(f, 1)

   While Cells(f1, 4) <> Empty
   dato1 = Cells(f1, 4)
    If dato = dato1 Then
    Sheets("Hoja1").Range("D" & f1 & ":H" & f1).Copy Destination:=Sheets("Hoja2").Range("A" & f2)
    conta = conta + 1
    f2 = f2 + 1
    End If
   f1 = f1 + 1
   Wend
f1 = 2
f = f + 1
Wend

uf = Sheets("Hoja2").Range("C" & Rows.Count).End(xlUp).Row
Sheets("Hoja2").Range("C" & 2 & ":E" & uf).NumberFormat = "#,##0.00"
If conta = 0 Then
MsgBox ("No se encontró el código buscado"), vbInformation, "AVISO"
Else
MsgBox ("Se copiaron con éxito " & conta & " códigos"), vbInformation, "AVISO"
End If
DisplayAlerts = True
Application.ScreenUpdating = True
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