Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Macro recorre filas, busca dato y resalta fila


.

En el anterior ejemplo se expuso sobre como se puede con una macro recorre las filas buscando un dato cuando lo encuentra copia los datos y los pega en otra hoja, 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í.

Ahora voy a mostrar otra variante, el ejemplo consiste en recorrer las filas encontrar el registro y resaltar la fila donde se encuentra, se recorre todas las filas hasta la última con datos, busca en la columna de búsqueda respectiva, una vez hallado el registro lo resalta con color, desde el link del final puedes descargar el ejemplo.

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 como fin 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 colorea o resalta toda la fila donde se encontró el dato

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.

Al último sale un msgbox mostrando la cantidad de registros encontrados, en caso que no encuentre también sale un msgbox avisando sobe dicha situación.


El ejemplo de macro que utiliza que recorre todas la filas, luego busca en un rango de datos y colorea o resalta la fila donde se encontró el dato, 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 BuscarDatosColoreaFila()
Application.ScreenUpdating = False
‘On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim conta As Integer
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).Interior.Color = 255
    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 encontraron » & 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