¿Como se vincula un textBox y un ComboBox?

Tengo en la Hoja2 una columna con referencias de unos productos (1000,1001,1002...) y en la de al lado los nombres (mesa, silla, puerta...)

En el formulario tengo un ComboBox para los números de las referencias y luego quiero que al seleccionar una referencia me salga en el TextBox en nombre del producto

¿Cómo se hace?

1 respuesta

Respuesta
1

H o l a:

Te anexo el código para que lo pongas en un userform. Faltó que mencionaras el nombre de la hoja, en cuál columna tienes las referencias, en cuál columna tienes los nombres de los productos y en cuál fila empiezan las referencias.

Tienes que cambiar, en la macro, el nombre de la hoja "Hoja1", las columnas "A", "B" y el número 2, por tus datos.

Private Sub ComboBox1_Change()
'Por.Dante Amor
    Set h = Sheets("Hoja1")
    co2 = "B"
    TextBox1 = ""
    If ComboBox1.ListIndex = -1 Then Exit Sub
    If ComboBox1 = "" Then Exit Sub
    fil = ComboBox1.ListIndex + 2
    TextBox1 = h.Cells(fil, co2)
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    'Para cargar las referencias en el combo
    Set h = Sheets("Hoja1")
    co1 = "A"
    For i = 2 To h.Range(co1 & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem h.Cells(i, co1)
    Next
End Sub

Avísame si los controles los tienes en la hoja y son controloactivex, entonces me das el detalle de cómo están tus datos en la hoja.


':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

Muchas gracias por contestar

Los datos los tengo en la Hoja 2

Los datos de las referencias los tengo en un grupo llamado "RefProductos" y el grupo con los productos se llama "Productos"

En el ComboBox ya había conseguido poner el desplegable con el siguiente código:

Sub UserForm_Initialize()
    Dim aCell As Range
    For Each aCell In Range("RefProductos")
        ComboBox1.AddItem (aCell.Value)
    Next
End Sub

Entonces lo que me falta es poner que el TextBox se rellene solo con los datos del grupo "Productos"

Quita las macros que te envié.

Pon la siguiente macro:

Private Sub ComboBox1_Change()
'Por.Dante Amor
    TextBox1 = ""
    If ComboBox1.ListIndex = -1 Then Exit Sub
    If ComboBox1 = "" Then Exit Sub
    TextBox1 = Range("Productos").Cells(ComboBox1.ListIndex + 1, 1)
End Sub

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas