ComboBox w UserFormie
Pod wpisem dotyczącym kontrolki ComboBox ( https://www.dariuszskorniewski.pl/combobox/ ) Diana napisała komentarz z pytaniem o to jak zrobić dwa takie pola w których jedno jest zależne od drugiego. Podała bardzo czytelny przykład z markami samochodów i ich modelami. Jeżeli w pierwszym polu użytkownik wybierze konkretną markę, to w drugim do wyboru będą modele dla tej właśnie marki.
Żeby dostosować przykład do zadania, które wyznaczyła mi Diana dodałem kolejny ComboBox, który zawierać będzie nazwę miasta reprezentującego oddział firmy.

Nową kontrolkę nazwałem cbxOddzial.
Modyfikacja kodu
Teraz wystarczy że do zdarzenia cbxKraj_Change() dodam warunek sprawdzający jaka wartość pojawiła się w tym właśnie polu. Dla każdego z czterech krajów wprowadziłem tablice, które zawierają listy oddziałów.
Jako ostatni przypadek po Else dodaję polecenie, które czyści kontrolkę. Polecenie czyszczenia zawartości drugiego ComboBox‘a sprawi, że po zmianie Kraju nie pozostanie mi stara nazwa oddziału. Ten krok jest niezbędny dlatego, że stara wartość z cała pewnością już nie należy do listy z tego nowo wybranego.

W ostatnim kroku dodaję nową linijkę kodu do eventu cbWstaw_Click(), aby zawartość nowej kontrolki została wprowadzana do arkusza. I jeszcze polecenie wyczyszczenia zawartości ComboBoxa’a po wprowadzeniu danych do arkusza.

Możesz też zobaczyć cały proces na YT:
2 thoughts on “UserForm – wartości w ComboBox zależne od innego ComboBox’a”
Witam
Panie Darku czy jest możliwość ustawienia jeżeli np w polu Oddział będę wpisywał ręcznie aby automatycznie pojawiały się podpowiedzi wpisywanych liczb np po wybraniu Polska mam wiele oddziałów “Kalisz”, “Poznań”, “Koszalin”, “Szczecin”; “Katowice” i wpisując np “KA” pojawią się podpowiedzi Kalisz i Katowice
Cześć Stanisław,
Jest to do zrobienia, chociaż szczerze to nigdy nie próbowałem zrobić tego samodzielnie 🙂 Jedyne rozwiązanie jakie widziałem to rozwiązanie, które pokazuje m.in. Adam z portalu ExceliAdam. Nie mam niestety linku do tego nagrania.