Busqueda de Datos


Este procedimiento lo que hace es buscar datos, es similar a la función buscarv, pero con código de VBA y mucho más útil, es muy útil cuando se tiene una planilla extensa y se quiere buscar un dato en función de uno o varios criterios, en el ejemplo busca los datos de una hoja que coinciden en otra hoja y trae los datos que necesito a la primer hoja, eso se puede adaptar a las necesidades de cada uno pudiendo manejar una cantidad de datos extensa en segundos; como así también incorporar varios criterios y que busque cualquier dato que se necesite, si tienes alguna duda no dudes en comentar y te responderé a la brevedad. A final se incorpora un link donde puedes bajarte un archivo de Excel con el ejemplo, podrás abrirlo, explorar el código y manipularlo para adaptarlo a tu aplicación, espero te sea de utilidad.

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.

  


Antes de continuar, recomiendo que leas un excelente libro sobre Excel el que te ayudará operar las planillas 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.

Debes insertar un módulo de VBA, copiar y pegar en módulo el siguiente código, bajate el ejemplo que está en el link del final.

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.










Sub busca()
'Evito movimientos en la pantalla
Application.ScreenUpdating = False
'Dimensiono variables
Dim fila, filaaddress, conta As Integer
fila = 2
filaaddress = 2
conta = 0
On Error Resume Next
'Realiza el bucle mientras la columna 1 de hoja alumno no este vacia
While Sheets("Alumnos").Cells(fila, 1) <> Empty
'Controlo errores

    ' Realizo un nuevo bucle en la hoja adress mientras las filas de la columna 1 de esta hoja no esten vacias
    ' y el cotador sea cero
    While Sheets("Address").Cells(filaaddress, 2) <> Empty And conta = 0
        
      'Si el nombre de la columna uno de la hoja alumno es igual al nombre de la columna uno de la hoja address
       If Sheets("Alumnos").Cells(fila, 1) = Sheets("Address").Cells(filaaddress, 1) Then
 
      'es  decir si encontro el dato, copia la dirección en la hoja alumno y voy a la fila siguiente de la hoja alumnos
      Sheets("Alumnos").Cells(fila, 3) = Sheets("Address").Cells(filaaddress, 2)
      'Si encontro el dato hago que el contador sea 1 para que no busque más
      conta = 1
     
      Else
     'Si no encontro el dato aumento la fila de la hoja address para seguir buscando hasta el final
      filaaddress = filaaddress + 1
      End If
    Wend
   
'Aumento en uno la fila para seguir buscando el dato siguiente de la hoja alumnos
fila = fila + 1
'Vuelvo filaaddress y contador a su valor de origen
filaaddress = 2
conta = 0
Wend
'Vuelvo movimientos de la pantalla a su estado original
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