Como poder vincular dos combobox en un formulario en excel?

Mi consulta hoy es la siguiente, me gustaría poder conseguir que en un formulario en que tengo dos combobox (uno se llama código y el otro se llama descripción) pueda seleccionar en código un item y en descripción me devuelva el dato correspondiente que estaría en un rango en la hoja rangos y viceversa .

Seria con la idea de poder seleccionar un producto bien por el código o bien por la descripción no se si me explique bien .

1 Respuesta

Respuesta
2

Podrías poner una imagen de la hoja en donde tienes los códigos y las descripciones, para saber en cuáles columnas y cuál fila empiezan los datos, también dime cómo se llama la hoja.

H o l a:

Pon los siguientes eventos en tu formulario

Dim cargando
Dim h1
'
Private Sub codigo_Change()
'Por.Dante Amor
    If cargando Then Exit Sub
    cargando = True
    descripcion = ""
    If codigo.ListIndex = -1 Then
        cargando = False
        Exit Sub
    End If
    descripcion = descripcion.List(codigo.ListIndex)
    cargando = False
End Sub
'
Private Sub descripcion_Change()
'Por.Dante Amor
    If cargando Then Exit Sub
    cargando = True
    codigo = ""
    If descripcion.ListIndex = -1 Then
        cargando = False
        Exit Sub
    End If
    codigo = codigo.List(descripcion.ListIndex)
    cargando = False
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        codigo.AddItem h1.Cells(i, "A")
        descripcion.AddItem h1.Cells(i, "B")
    Next
End Sub

En el evento Activate, cambia "Hoja1" por el nombre de tu hoja que tenga los códigos. Cambia "A" y "B" por las columnas en donde tienes los  códigos y descripcion.

Nota: Al principio de los eventos van las variables globales cargando y h1, esas variables deben ir al principio de toda la macro.


¡Gracias! EXCELENTE funciona a la perfección y se ajusta a lo que necesitaba como siempre me ayudo mucho en mi proyecto.

Víctor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas