¿Función vlookup en un formulario de excel visual basic?

Estoy creando un sistema de inventario y tengo un problema con los formularios de salida y entrada de producto.

Tengo la lista de producto con su código nombre marca y otros

Quiero que al introducir el código salga el nombre del producto la marca las unidades disponibles ó que si selecciono el nombre del producto me arroje el código la marca y la disponibilidad.

Los datos están en la siguiente foto.

He buscado mucho pero no he encontrado. Vi un video que fue el más parecido pero no me funcionó. Este es el link

https://www.youtube.com/watch?v=t39GJ_XmX8I&t=175s 

Agradezco a quien pueda ayudarme

1

1 Respuesta

161.075 pts. Si de mis mayores gustos, mis disgustos han nacido,...

Lo que tienes es demasiado sencillo que no ocupas el vlookup, mira esta imagen, uso una propiedad del combobox llamada listbox1. Listindex y esa es la que me trae los valores al formulario, ademas vlookup no te sirve solo funciona hacia la derecha si el valor que buscas esta a la izquierda te va a marcar error por ejemplo al pedir que busque por nombre del producto y quieras traer la marca no te va a dejar.

prueba esta macro

Private Sub ComboBox1_Change()
End Sub
Private Sub ComboBox2_Change()
Set datos = Range("PRODUCTOS")
INDICE = ComboBox2.ListIndex + 1
With datos
    TextBox1.Text = .Cells(INDICE, 1)
    TextBox2.Text = .Cells(INDICE, 4)
    TextBox3.Text = .Cells(INDICE, 5)
    Label1.Caption = .Cells(INDICE, 2)
End With
Set datos = Nothing
End Sub
Private Sub UserForm_Initialize()
Set datos = Range("B4").CurrentRegion
datos.Name = "PRODUCTOS"
MATRIZ = datos.Columns(3)
ComboBox2.List = MATRIZ
Set datos = Nothing
End Sub

James Gracias pero...

no se cómo reemplazar los valores.

¿me podría decir el nombre de cada uno?

supongamos...

textbox1=producto

Se lo agradezco.

Al parecer trabajamos con el mismo producto =D

No tienes que sustituir nada tal como esta funciona bien y solo para mostrarte que es lo mismo aquí esta la macro desglosada

Private Sub ComboBox2_Change()
Set datos = Range("PRODUCTOS")
INDICE = ComboBox2.ListIndex + 1
With datos
    codigo = .Cells(INDICE, 1)
    unidades = .Cells(INDICE, 4)
    precio = .Cells(INDICE, 5)
    marca = .Cells(INDICE, 2)
    TextBox1.Text = codigo
    TextBox2.Text = unidades
    TextBox3.Text = precio
    Label1.Caption = marca
End With
Set datos = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas