Como utilizar WorksheetFunction VLookup o BuscarV





Ahora voy a exponer sobre unas de las funciones más usadas en la búsqueda de datos, detallando como se utiliza la función VLookup o BuscarV; en Funciones de Excel descripción y traducción al inglés y otros idiomas, encontrarás listadas y con una breve explicación sobre que realiza cada una de las funciones de Excel, en como utilizar BuscarV se explica la utilización de dicha función en Excel.

En este post WorksheetFunction funciones de Excel en VBA se dijo que WorksheetFunction tiene por objeto ejecutar casi todas las funciones que trae incorporadas Excel, es decir se puede agregar en una macro y echar manos a estas funciones, luego se expuso un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA.

La función WorksheetFunction VLookup o BuscarV sirve para buscar un dato que se requiera en la primer columna de la matriz tabla o base de datos donde deseamos buscar los datos, devolviendo el dato o valor de la misma fila y columna especificada; la sintaxis es la siguiente:

WorksheetFunction.VLookup(Arg1, Arg2, Arg3, Arg4)

El significado de los parámetros son:

Arg1, es un dato obligatorio, representa el valor buscado que se va a buscar en la primera columna de la matriz o base de datos..

Arg2, dato obligatorio que indica la matriz, tabla o base de datos de dos o más columnas donde se va a buscar el dato del Arg1, es decir el dato que se requiere buscar en la base de datos, los valores pueden ser texto, números o valores lógicos, las mayúsculas y minúsculas son equivalentes.

Arg3, este argumento es obligatorio e indica la columna donde se encuentra el dato a devolver, 2 indica la columna dos, 6 la columna seis y así sucesivamente.

Arg4, este argumento es opcional indica si se requiere que VLookup localice la coincidencia exacta o aproximada.

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 macro de VBA que se puede descargar del link del final, muestra en detalle como se usa la WorksheetFunction VLookup o BuscarV; lo primero que se realiza es determinar cual es la última fila con datos mediante la variable "uf", luego se aplica la función, el objeto del ejemplo es encontrar el código que se introduce en la celda "B1", la función busca en toda la base de datos cuyo rango se determina automáticamente.

Una vez encontrado el dato lo agrega en una variable, en este caso se desean recuperar todos los datos contenidos en la fila donde se encuentra el dato buscado, es por ello que se aplica la función varias veces y se agrega el dato correspondiente a una variable.

Luego se copia el valor de las diferentes variables en las celdas de la A a la E de la fila 3, en el caso de que no encuentre el código ingresado en la base de datos, en dicha fila 3 aparece un letrero indicando que no se han encontrado datos.

Posteriormente aparece un Msgbox, si quieres aprender sobre como crear msgbox click en el link; en el Msgbox se establece muestra si se encontraron datos en caso que no existan datos muestra otro cartel indicando que no existen datos.

Examinando la función veremos que Cells(1, "B"), es el Arg1 que indica donde se encuentra el valor a buscar; luego Range("A" & pf & ":E" & uf), indica el rango donde se debe buscar los datos, teniendo presente que busca en la primer columna de la matriz o base de datos, el último dato VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 4); indica que se debe devolver el valor de la columna 4. 

El ejemplo de macro que utiliza WorksheetFunction VLookup o BuscarV 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, previamente se debe cargar un código de barra a buscar en la celda "B1".

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.







Código que se inserta en un userform





Sub VlookupoBuscarV()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
pf = 6
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
bus1 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 1)
bus2 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 2)
bus3 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 3)
bus4 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 4)
bus5 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 5)

Cells(3, "A") = bus1
Cells(3, "B") = bus2
Cells(3, "C") = bus3
Cells(3, "D") = bus4
Cells(3, "E") = bus5

Range("C" & 3 & ":E" & 3).NumberFormat = "#,##0.00"
If bus1 <> Empty Then
MsgBox ("Los datos fueron encontrados con éxito"), vbInformation, "AVISO"
Else
Cells(3, "A") = "No se encontraron registros en la base de datos"
MsgBox ("No se encontraron datos"), 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