Cómo realizar un Vlookup en Visual Basic de Excel y devolver un valor en un Label de la forma de VB

Tengo el Sheet1 con una base de datos. En el Sheet2 estoy agregando datos que se capturan en el formulario de Excel con Visual Basic, necesito comparar en el TEXTBOX del formulario un valor del Sheet1 con un VLOOKUP y que me regrese el Valor en el formulario para almacenarlo posteriormente en el Sheet2.

1 respuesta

Respuesta
1

Todas las Funciones Excel están en WorkSheetFunction, lo harías así:

Celda_O_Variable = WorkSheetFunction.VlookUp(ValorBuscado, RangoBuscar,Columnas,Falso)

Ok muchas gracias por la respuesta, ¿y para que el valor me lo mande al formulario a un Label?

En si lo que quiero es que cuando en un textbox ponga determinado número (código de producto) haga la comparación con el Sheet uno y en el formulario en un Label me ponga el resultado del vlookup (la descripción del producto) en automático.

Gracias nuevamente y saludos.

Puedes crear una función así:

Function Buscar(ByVal Valor As String, RangoBuscar As Range) As String
Dim V As String
V = WorksheetFunction.IfError(WorksheetFunction.VLookup(Valor, RangoBuscar, 2, False), "")
Buscar = V
End Function

Y la llamas así:

Label.Caption = Buscar(TextBox.Value, Range("F2:G30000"))

Por Ejm.

Gracias de nuevo.

Tengo duda con la función, si la variable "RangoBuscar" se le debe definir el Sheet2 donde tengo los datos a a comparar (A:D), Vi que hay un código: Sheets("Sheet2"),Range("A:D")

Describo mas a detalle como tengo el archivo

1. Sheet1 - Guardo los datos del formulario de VB, esa parte ya funciona.

2. Sheet2 - Tengo los datos de productos que quiero comparar en el formulario de VB

Al momento de poner un valor numérico en un Textbox de nombre txtCodigo1 quiero que en automático me ponga en un Label de nombre lblProd1 la descripción del artículo que esta en el Sheet2.

Disculpa la molestia pero soy nuevo en VB, o si te puedo mandar el ejemplo por correo para que lo veas mas a detalle.

Ok mándamelo

[email protected]

Listo ya te lo mande a tu correo.

saludos.

Ya e mande el archivo a tu eMail.

Mejor utilice el Método Find de Range, nunca haba intentado usar el VLOOKUP desde VBA, que dolor de cabeza! Y tan sencillo que es desde Excel :P

En fin, diferente método pero mismo resultado.

Muchas gracias por el apoyo, excelente tiempo de respuesta y atención. Amplio conocimiento y alternativas de solución. Ya funciono como quería. saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas