Cómo cargar un combobox2 de un formulario dependiendo del combobox1

Tengo el siguiente código para cargar los datos únicos en un combobox. Lo que ahora necesito es que al seleccionar un dato del combobox1, busque todas las marcas que de ese combobox y cargue el tipo de la columna de a un lado en el combobox2. Y cuando seleccione un dato del combobox2, entonces todos los datos de esa marca y tipo los cargue en un listbox.

Private Sub UserForm_Activate()
'por.Dante Amor
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
agregar ComboBox1, Cells(i, "A")
Next
End Sub
Sub agregar(combo As ComboBox, dato As String)
'por.Dante Amor agrega los item únicos y en orden alfabético
For i = 0 To combo.ListCount - 1
Select Case StrComp(combo.List(i), dato, vbTextCompare)
Case 0: Exit Sub 'ya existe en el combo, no lo agrega
Case 1: combo.AddItem dato, i: Exit Sub 'Es menor, lo agrega antes del comparado
End Select
Next
combo.AddItem dato 'Es mayor lo agrega al final
End Sub

1 Respuesta

Respuesta
1

Pon el siguiente código en tu formulario.

Private Sub ComboBox1_Change()
'por.Dante Amor
    'Llena combo2
    ComboBox2.Clear
    For i = 2 To Sheets("Hoja1").Range("B" & Rows.Count).End(xlUp).Row
        If Sheets("Hoja1").Cells(i, "A") = ComboBox1 Then
            ComboBox2.AddItem Sheets("Hoja1").Cells(i, "B")
        End If
    Next
End Sub

Para cargar los datos en el listbox, puedes crear una preunta nueva y me explicas lo siguiente: Hay varios tipos de la misma marca o solamente hay un registro, también dime qué columnas hay que cargar en el listbox y cuántas columnas hay que cargar.

Espero tus comentarios.

Si ya no tienes dudas de cómo cargar los datos en el combobox2 dependiendo de lo que seleccionas en el combo1, recuerda valorar la respuesta.

Saludos. Dante Amor

¡Gracias! 

De acuerdo voy a enviar la nueva pregunta

Experto, me está cargando varios tipos en el combobox y también necesito que se carguen solamente los únicos, cómo le puedo hacer.

Cambia esta línea

ComboBox2. AddItem Sheets("Hoja1").Cells(i, "B")

Por esta:

Agregar ComboBox2, Sheets("Hoja1").Cells(i, "B")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas