Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como buscar datos al presionar enter con metodo Find

En este ejemplo muestro como buscar un dato al presionar enter utilizando el metido Find, anteriormente se mostraron otras formas de búsqueda que si no vieron el post anterior aca se los dejo nuevamente, recuerda que desde http://programarexcel.com podrás descargar este y cientos de ejemplos más.

Búsqueda de datos empleando el Vlookup


Como usar la función VLookup
BuscarV al presionar enter
como usar la función VLookup o BuscarV con base datos en otra hoja

Búsqueda de datos empleando bucles
Como recorrer filas busca dato y lo pega en otra hoja
Como buscar datos y eliminarlos
Como buscar datos y resaltarlos 

Búsqueda de datos con sentencias SQL
Conectar Excel con Access
Conectar Excel con Access utilizando SQL para manipular datos

Búsqueda de datos con el método find
Como utilizar el método find
Aplicar el método find en la búsqueda de datos

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.

  
Para que el ejemplo de macro denominada como buscar datos al presionar enter con el método find, funcione se debe establecer que la macro se ejecute cuando detecte que se ha presionado la tecla enter, ello se logra adicionando el siguiente código en el objeto hoja.

If Target.Column = 2 And Target.Row = 1 Then
Application.OnKey «{ENTER}», «BuscarMetodoFind»

El código anterior se ejecuta cuando se realiza algún cambio en la hoja pero solo si el cambio se da en la celda B1, que es donde se debe ingresar el código a buscar, con la segunda línea de código hace que la macro BuscarMetodoFind

Entonces al detectar que la modificación se produjo en la celda B1 y se presionó enter, se ejecuta la macro que buscar los datos en la base de datos y muestra en el rango A4:F4 los registros relacionados con el dato buscado.

Para buscar los registro primero se establece en la variable «busco» el dato a buscar, luego se crea un objeto con la búsqueda, si el objeto no está vacío es decir se encontró el dato, se determina la fila donde fue encontrado y se usa para buscar los datos relacionados, para ello se apela a la siguiente codificación:

busco = Cells(1, «B»)
Set codigo = a.Range(r).Find(busco, LookIn:=xlValues, LookAt:=xlWhole)
If Not codigo Is Nothing Then
Cells(4, «A») = a.Cells(codigo.Row, 1)

Considera la posibilidad de aportar al mantenimiento del sitio si consideras que fue útil, el ejemplo se puede descargar en forma gratuita desde el final del post, desde el link destinado a tal efecto.

Recomiendo observar vídeo siguiente 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 macro para copiar varias hojas y guardar como con el explorador de windowsbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mail, como conectar Excel con Word y modificar una plantilla de Word 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 módulo
Sub BuscarMetodoFindEnter()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim uf As String
Set a = Sheets(«URL MACRO EJEMPLO»)
pf = 2
uf = a.Range(«A» & Rows.Count).End(xlUp).Row
r = «A» & pf & «:A» & uf
busco = Cells(1, «B»)
Set codigo = a.Range(r).Find(busco, LookIn:=xlValues, LookAt:=xlWhole)

If Not codigo Is Nothing Then
Cells(4, «A») = a.Cells(codigo.Row, 1)
Cells(4, «B») = a.Cells(codigo.Row, 2)
Cells(4, «C») = a.Cells(codigo.Row, 3)
Cells(4, «D») = a.Cells(codigo.Row, 4)
Cells(4, «E») = a.Cells(codigo.Row, 5)
Cells(4, «F») = a.Cells(codigo.Row, 6)
Else
Range(«4:4»).Clear
Cells(4, «A») = «No se encontraron registros en la base de datos»
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Código que se inserta en el objeto hoja


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Target.Row = 1 Then
Application.OnKey «{ENTER}», «BuscarMetodoFind»
End If

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