Lista vrednosti u Combo boxu na korisničkoj formi određuje se kroz svojstvo RowSource. Ovde možeš zadati neki opseg ćelija na listu. Pri tome kao i svako drugo svojstvo (property) može se direktno zadati prilikom dizajna, upisom u property prozoru, ili zadati unutar koda npr:
Me.ComboBox2.RowSource = "Sheet1!B2:B4"
U tvom slučaju u događaju OnChange prvog kombo boxa treba promeniti RowSource drugog kombo boxa zavisno od izbora koji je izvršen u prvom kombo boxu. Klasično rešenje bilo bi korišćenje Select Case strukture gde se zavisno od izbora definiše RowSource za drugi Combo. Neka je lista za izbor u prvom kombu A, B, C
Code:
Select Case Me.ComboBox1.Value
Case "A":
Me.ComboBox2.RowSource = "Sheet1!B2:B5"
Case "B":
Me.ComboBox2.RowSource = "Sheet1!C2:C4"
Case "C":
Me.ComboBox2.RowSource = "Sheet1!D2:D3"
End Select
Ipak ovo može biti zametno kad imaš listu sa puno stavki pa je moj predlog nešto drugačiji. Možeš na pogodan način imenovati opsege:
Npr zavisna lista kad je izbor u prvom kombu A - ListaA, i slično ListaB za izbor B ili ListaC za izborC. U tom slučaju kod bi mogao biti dosta kraći
Code:
Private Sub ComboBox1_Change()
Me.ComboBox2.RowSource = "Lista" & Me.ComboBox1.Text
Me.ComboBox2.ListIndex = 0 ' selektuje se prva vrednost sa liste kao default
End Sub