Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

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


.

Este ejemplo es una variante del post anterior, la presente macro permite buscar un dato con Vlookup o BuscarV  al presionar enter, es decir solo basta ingresar el dato a buscar y presionar enter para que la macro busque en la base de datos que está en otra hoja y cargue los datos correspondientes al registro buscado.

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.

  
Al descargar el ejemplo desde el link del final, se observa que en la celda B1 se puede ingresar un dato que será buscado en la base de datos que está en otra hoja llamada «URL MACRO EJEMPLO», solo basta ingresar el número buscado en B1 y presionar enter e inmediatamente la macro busca el dato en la base y carga los registros relacionados en las celdas A4:F4.

Se apela a la expresión WorksheetFuncion, para buscar el dato correspondiente, recordemos que WorksheetFunction, permite a las macros ejecutar todas o mejor dicho casi todas las funciones que vienene integradas en Excel, para aprender mas sonbre WorksheetFunction visita el link.

Para que la búsqueda se realice al presionar Enter, se debe incorporar en la programación de la hoja donde está el dato a buscar el siguiente código, en otras palabras se asigna a la tecla ENTER una macro determinada:

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

Al evento Enter se le asigna la macro «VLookupConEnter».Entonces al detectar que se presionó Enter se asigna la ejecución de la macro mencionada, esta macro en un primer momento arma el rango variable de la hoja donde está la base de datos, luego se carga en una variable el dato buscado y por último el dato buscado se copia en la celda.

Descarga el ejemplo de macro que permite buscar un dato con Vlookup o BuscarV al presionar Enter, el código es libre, pudiendo ser usado sin restricción, considera la posibilidad de aportar al mantenimiento del sitio si consideras que fue útil.

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 como eliminar filas vacíasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar 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 módulo
Sub VLookupConEnter()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim uf As String
Set b = Sheets(«URL MACRO EJEMPLO»)
pf = 2
uf = b.Range(«A» & Rows.Count).End(xlUp).Row
bus1 = Application.WorksheetFunction.VLookup(Cells(1, «B»), b.Range(«A» & pf & «:F» & uf), 1, False)
bus2 = Application.WorksheetFunction.VLookup(Cells(1, «B»), b.Range(«A» & pf & «:F» & uf), 2, False)
bus3 = Application.WorksheetFunction.VLookup(Cells(1, «B»), b.Range(«A» & pf & «:F» & uf), 3, False)
bus4 = Application.WorksheetFunction.VLookup(Cells(1, «B»), b.Range(«A» & pf & «:F» & uf), 4, False)
bus5 = Application.WorksheetFunction.VLookup(Cells(1, «B»), b.Range(«A» & pf & «:F» & uf), 5, False)
bus6 = Application.WorksheetFunction.VLookup(Cells(1, «B»), b.Range(«A» & pf & «:F» & uf), 6, False)

Cells(4, «A») = bus1
Cells(4, «B») = bus2
Cells(4, «C») = bus3
Cells(4, «D») = bus4
Cells(4, «E») = bus5
Cells(4, «F») = bus6

If bus1 = Empty Then
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 donde esté el dato a buscar

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Target.Row = 1 Then
Application.OnKey «{ENTER}», «VLookupConEnter»
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