Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

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 seguir 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.

  

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.


El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}


Código que se inserta en un userform

Sub BuscarDatosEliminaFila()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim conta As Integer
Sheets(«Hoja2»).Range(«A1:H100»).Copy Destination:=Sheets(«Hoja1»).Cells(1, 1)
f = 2
f1 = 2
uf = Sheets(«Hoja1»).Range(«D» & Rows.Count).End(xlUp).Row
Sheets(«Hoja1»).Range(«D» & f1 & «:H» & uf).Interior.Pattern = xlNone
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).Delete Shift:=xlUp
    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 eliminaron » & conta & » registros»), 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