Como usar la función VLookup o BuscarV al presionar enter y conservar hypervinculo


La expresión WorksheetFunction  permite a las macros ejecutar casi todas las funciones que vienen integradas en Excel, en este oportunidad muestro a pedido de un suscriptor del canal de YouTube como conservar los link, vinculos, hyperlink o hipervinculos, usando la función Vlookup o BuscarV, al traer los datos de la base de datos a la hoja donde se requieren los datos.

Quizás sea de utilidad post anteriores denominados:
 como usar la función VLookup o BuscarV al presionar enter y como usar la función VLookup o BuscarV con base datos en otra hoja.

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 denominado como usar la funcion Vlookup o BuscarV al presionar enter y conservar los hypervinculos, link o hyperlink, para lograr que se ejecute al presionar enter se debe agregar el siguiente código en el objeto hoja del libro, para una mejor y más fácil comprensión de lo que se intenta explicar, solicitó se descargue el archivo desde el link del final.

If Target.Column = 2 And Target.Row = 1 Then
Application.OnKey "{ENTER}", "VLookupConEnterLink"

El código anterior solo tiene en cuenta las modificaciones en la celda B1, que es donde se debe ingresar el dato a buscar, el código anterior permiente que al presionar enter se ejecute la macro denominada en este ejemplo "VlookupConEnterLink".

Posterior a ello se carga en la variable bus1 y demás variables similares, el texto que coincide exactamente con la búsqueda realizada

bus1 = Application.WorksheetFunction.VLookup(Cells(1, "B"), b.Range("A" & pf & ":F" & uf), 1, False)

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.

El código que sigue a continuación permite crear un hipervinculo, link, hipertexto o hyperlink a la URL que está contenida en los registros que conforman la base de datos.

a.Hyperlinks.Add Anchor:=a.Cells(4, "F"), Address:=bus6, TextToDisplay:=bus6

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.







 

Código que se inserta en un módulo




Sub VLookupConEnterLink()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim uf As String
Set a = Sheets(ActiveSheet.Name)
Set b = Sheets("URL MACRO EJEMPLO")
b.Range("A4:F4").Clear
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)

a.Cells(4, "A") = bus1
a.Cells(4, "B") = bus2
a.Hyperlinks.Add Anchor:=a.Cells(4, "C"), Address:=bus3, TextToDisplay:=bus3
a.Hyperlinks.Add Anchor:=a.Cells(4, "D"), Address:=bus4, TextToDisplay:=bus4
a.Cells(4, "E") = bus5
a.Hyperlinks.Add Anchor:=a.Cells(4, "F"), Address:=bus6, TextToDisplay:=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 un objeto hoja del libro

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

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.










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      

Como buscar datos en Excel con metodo Find


Existen varias formas de buscar datos que se pueden utilizar en macros de Excel, se puden realiazar búsqueda de datos a través de bucles, con Vlookup, sentencias SQL y método find que es el que se muestra en el presente ejemplo, en otras palabras este ejemplo enseña como buscar datos a través de una macro empleando el método Find.

Si requieres aprender mas sobre búsqueda de datos con macros de Excel, mira los siguientes links entre cientos de ejemplos que podrás descargar desde http://programarexcel.com:

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.

  

El ejemplo establece en un primer crea el rango variable donde debe buscar la macro con los siguientes còdigos:

uf = a.Range("A" & Rows.Count).End(xlUp).Row
r = "A" & pf & ":A" & uf

En la variable r se guarda el rango variables, es decir no importas si se agregan o eliminan datos, la macro detecta en forma automática donde se encuentran dos datos; posterior a ello establece donde se encuentra el dato a buscar, que en este caso es el que se ingrese en la celda B1.

busco = Cells(1, "B")

Posteriormente se crea un objeto que contendrá el dato buscado en caso de encontrarle y será nulo en caso de no encontrarlo, fíjense que en la sintaxis de Find, se ingresa el valor buscado (variable "busco") y el rango donde se buscará.

Set codigo = a.Range(r).Find(busco, LookIn:=xlValues, LookAt:=xlWhole)

Si el objeto código no está vacío, es decir encontró el dato, se obtiene su dirección, en este caso la fila, para determinar donde se encuentran los datos relacionados con el registro buscado.

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.









Código que se inserta en un módulo




Sub BuscarMetodoFind()
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



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      

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


En este ejemplo se muestra como utilizar la función BuscarV o VLookup en inglés, pero para utilizar dicha función  en una macro se hace con la expresión WorksheetFunction que permite a las macros ejecutar casi todas las funciones que vienen integradas en Excel, la macro del ejemplo enseña como utilizar BuscarV o VLookup al presionar enter estando la base de datos en la misma hoja.

Anteriormente se presentaron variantes que también pueden ser de utilidad, como usar la función VLookup o BuscarV al presionar enter y como usar la función VLookup o BuscarV con base datos en otra hoja.

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 se podrá observar que en la celda B1 existe una celda concatenada en la cual se puede ingresar el dato a buscar, al ingresar el dato y presionar enter la macro busca el dato en la base de datos que se encuentra en la mimas hoja, colocando los dato en el rango A4:F4.

Con los siguientes códigos se determina la última fil a con datos y como se utiliza la expresión WorksheetFunction en una macro, la última fila con datos es necesaria para determinar un rango variable y no quede sujeto a una cantidad de datos fijos en la base de datos, haciendo una macro funcional ya que buscará los datos en toda la base de datos sin importar la cantidad que cotentenga.

uf = a.Range("A" & Rows.Count).End(xlUp).Row

bus1 = Application.WorksheetFunction.VLookup(Cells(1, "B"), a.Range("A" & pf & ":F" & uf), 1, False)

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.








Código que se inserta en un módulo




Sub VLookupConEnterHD()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim uf As String
Set a = Sheets("URL MACRO EJEMPLO")
pf = 8
uf = a.Range("A" & Rows.Count).End(xlUp).Row
bus1 = Application.WorksheetFunction.VLookup(Cells(1, "B"), a.Range("A" & pf & ":F" & uf), 1, False)
bus2 = Application.WorksheetFunction.VLookup(Cells(1, "B"), a.Range("A" & pf & ":F" & uf), 2, False)
bus3 = Application.WorksheetFunction.VLookup(Cells(1, "B"), a.Range("A" & pf & ":F" & uf), 3, False)
bus4 = Application.WorksheetFunction.VLookup(Cells(1, "B"), a.Range("A" & pf & ":F" & uf), 4, False)
bus5 = Application.WorksheetFunction.VLookup(Cells(1, "B"), a.Range("A" & pf & ":F" & uf), 5, False)
bus6 = Application.WorksheetFunction.VLookup(Cells(1, "B"), a.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



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      

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.







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      

Como usar la función VLookup o BuscarV con base datos en otra hoja





El ejemplo muestra como se usa Vlookup o BuscarV para encontrar un dato ingresado y todos los registros relacionados, el ejemplo contiene una macro que permite buscar un número ingresado y traer desde la base de datos que está en otra hoja los registros relacionados. Probablemente necesites otros tipos de búsqueda, para ello es posible requieras buscar un datos por cliente entre fecha y fecha; o simplemente buscar datos entre fecha y fecha, buscar datos a medida que se escribe, buscar clientes en un listbox y cargarlos en los textbox.

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.

  

Desde el link del final se puede descargar el ejemplo denominado como buscar con Vlookup o BuscarV un dato y extraer registros relacionados, en un post anterior se explicó acerca de WorksheetFunction, permite utilizar casi todas las funciones que trae incorporada Excel en macros de VBA, es por ellos que se puede utilizar la función Vlookup o BuscarV en una macro de Excel.

El ejemplo primero determina la ultima fila con datos para determinar el rango variable donde se encuentran los datos, que en este caso, están en otra hoja, ello se hace con:

uf = b.Range("A" & Rows.Count).End(xlUp).Row

Luego se busca el valor cargado en la celda B1 en la hoja "URL MACRO EJEMPLO", una vez encontrado el dato se va cargando en las distintas variables:

bus1 = Application.WorksheetFunction.VLookup(Cells(1, "B"), b.Range("A" & pf & ":F" & uf), 1, False) 

Por último se copia en las celdas el valor de los distintos registros que coinciden con el dato buscado y cargado en la celda B1, de la siguiente manera:

Cells(4, "A") = bus1

Si el dato ingresado en B1 no se encuentra en la base de datos sale un mensaje avisando sobre el resultado negativo de la búsqueda, ello en la celda A4, el siguiente código permite realizar lo mencionado.

Cells(4, "A") = "No se encontraron registros en la base de datos"

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 Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar 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.






Código que se inserta en un módulo




Sub VlookupoBuscarV()
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



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