¿Como hago una dependencia de un combobox a otro en visual basic ?

Me dejaron un trabajo sobre hacer una agencia de viajes por medio de combobox pero me pide que solo y según lo que ponga en el primer combobox1 aparezcan tres respuestas en otro combobox2 y luego ir repitiendo el proceso en diferentes combobox. Pero el problema es que cada vez que creo un código que según yo debería funcionar al momento de ejecutarlo me aparece como si todo el código no funcionara, necesito ayuda (no se si sirva de algo pero uso la versión de 2010 de visual basic)

Aquí les dejo el ultimo código que hice:

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

If ComboBox1.SelectedItem = "Uruguay." Then

ComboBox2.AddItem = "Montevideo"
ComboBox2.AddItem = "Colonia Sacramento"
ComboBox2.AddItem = "La Paloma"

ElseIf ComboBox1.SelectedItem = "Túnez." Then

ComboBox2.AddItem = "Dougga"
ComboBox2.AddItem = "Chenini"
ComboBox2.AddItem = "El Jem Amphitheatre"

ElseIf ComboBox1.SelectedItem = "Camboya." Then

ComboBox2.AddItem = "Phnom Penh"
ComboBox2.AddItem = "Siem Reap"
ComboBox2.AddItem = "Sihanoukville"

ElseIf ComboBox1.SelectedItem = "Costa Rica." Then

ComboBox2.AddItem = "Corcovado "
ComboBox2.AddItem = "Bahia Drake"
ComboBox2.AddItem = "Manuel Antonio"

ElseIf ComboBox1.SelectedItem = "Belice." Then

ComboBox2.AddItem = "Cayo Ambergris"
ComboBox2.AddItem = "Altun Ha"
ComboBox2.AddItem = "Placencia"
End If
End Sub

1 Respuesta

Respuesta
2

Es más fácil si creas una tabla y luego de hay haces que los combos carguen la info la pantalla es un ejemplo, solo cambia la B2 del modulo initialize para adaptarla a tus datos

Private Sub ComboBox1_Change()
Set PAISES = Range("PAISES")
PAIS = ComboBox1.Value
With WorksheetFunction
    CUENTA = .CountIf(PAISES.Columns(1), PAIS)
    FILA = .Match(PAIS, PAISES.Columns(1), 0)
End With
ComboBox2.Value = Empty
With PAISES
    ComboBox2.RowSource = .Cells(FILA, 2).Resize(CUENTA).Address
End With
End Sub
'
'
Private Sub UserForm_Initialize()
Dim UNICOS As New Collection
Set PAISES = Range("B2").CurrentRegion
ComboBox1.Clear
With PAISES
    .Sort _
    KEY1:=Range(.Columns(1).Address), ORDER1:=xlAscending, _
    KEY2:=Range(.Columns(2).Address), ORDER2:=xlAscending, Header:=xlYes
    F = .Rows.Count
    For I = 2 To F
        PAIS = .Cells(I, 1)
        On Error Resume Next
        UNICOS.Add PAIS, CStr(PAIS)
        If Err.Number = 0 Then ComboBox1.AddItem PAIS
        On Error GoTo 0
    Next I
    .Name = "PAISES"
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas