Kontrolki ActiveX – Pole kombi ComboBox w Excel VBA 3


1. Budowa aplikacji do wprowadzania danych – Wstawianie pola kombi ComboBox (Formant ActiveX)

Pole kombi to tzw. lista rozwijana, z której możemy skorzystać w Excelu. Należy pamiętać, że nie jest to ten sam rodzaj listy, który możemy wprowadzić w Excel w poprawności danych. Podobnie jak w przypadku pola tekstowego, by wstawić pole kombi ComboBox wchodzimy w zakładkę Developer. Włączamy tryb projektowania, następnie z formantów ActiveX wybieramy Pole kombi.Zgodnie z wymaganiami naszej aplikacji, wstawmy 4 kolejne pola kombi. Jedno pole nad kolumną Region. 3 pola nad kolumną Data urodzenia.

Kurs Excel VBA - Pole Kombi ComboBox

Kurs Excel VBA – Pole Kombi ComboBox

2. Budowa aplikacji do wprowadzania danych – Programowanie pola kombi ComboBox (Formant ActiveX)

Podobnie jak w przypadku pola tektowego, pola kombi powinniśmy odpowiednio zaprogramować. Pola kombi programujemy w następujący sposób:

  • Przechodzimy do Edytora VisualBasic i wybieramy z lewej strony obiekt “Ten skoroszyt” lub w zależności od wersji Excela “This Workbook”
  • W oknie Code ustawiamy Obiekt “Workbook” i wyzwalacz “Open”. Dzięki temu wartości w polach kombi załadują się nam przy każdorazowym otwieraniu skoroszytu.
  • By wprowadzić wartości w listę pola kombi, odnosimy się do odpowiedniego arkusza, oraz pola kombi w następujący sposób Nazwa_arkusza.Nazwa_pola_kombi “Wartość , która powinna pojawić się w polu”. W taki sposób wprowadzamy w kolejnych liniach kodu wszystkie nasze wartości np województwa. W naszym przypadku nazwą pola kombi będzie ComboBox1
  • Ważne jest, by po każdorazowej edycji wartości w polu kombi zapisać, zamknąć i ponownie otworzyć plik Excela.

Kurs Excel VBA - Pole Kombi ComboBox

Kurs Excel VBA – Pole Kombi ComboBox

Kurs Excel VBA - Pole Kombi ComboBox

Kurs Excel VBA – Pole Kombi ComboBox

Jeśli korzystasz z formularza UserForm, a nie z kontrolek osadzanych w arkuszu koniecznie przeczytaj jeden z kolejnych rozdziałów kursu VBA na temat wstawiania pola kombi ComboBox w formularzu UserForm.

3. Budowa aplikacji do wprowadzania danych – Programowanie pola kombi ComboBox (Formant ActiveX) – Klauzula With

Jeśli wartości jest dużo, powinniśmy skorzystać z klauzuli With. Odnosimy się w ten sposób do pola kombi i arkusza tylko raz i zaoszczędzamy czas na pisanie naszego kodu

Kod wprowadzony w powyższy sposób powinniśmy zamknąć przy użyciu wyrażenia End With. Ważne także jest, by po każdorazowej edycji wartości w polu kombi zapisać, zamknąć i ponownie otworzyć plik Excela.

Kurs Excel VBA - Pole Kombi ComboBox

Kurs Excel VBA – Pole Kombi ComboBox

4. Budowa aplikacji do wprowadzania danych – Programowanie pola kombi ComboBox (Formant ActiveX) – użycie pętli

W tym momencie możemy już korzystać z funkcjonalności pola Kombi. Jeśli chcemy zaprogramować kolejne pola odpowiadające kolejno za dzień, miesiąc i rok urodzenia, najłatwiej będzie skorzystać z pętli For…Next. Jeśli chcemy, by w polu ComboBox2 odpowiedzialnym za dzień urodzenia wyświetlały się wartości od 1 do 31 na wzór dni miesiąca, powinniśmy zaprogramować pole kombi w następujący sposób:

Pole kombi programujemy tak jak poprzednio w kodzie obiektu “Ten skoroszyt“. Wyświetlanie dni tygodnia w formie liczb od 1 do 31 jest oczywiście uproszczeniem, gdyż nie każdy miesiąc posiada tyle dni. Możemy zaprogramować kod naszej aplikacji w taki sposób, by wyeliminować takie przypadki. By dokończyć wypełnianie wartości w polach kombi 3 i 4 analogicznie programujemy kod odpowiedzialny za miesiąc i rok. Dla odmiany zastosujmy także pętlę While..Wend do utworzenia wartości w naszych polach. Kod naszego programu w obiekcie “Ten skoroszyt” powinien wyglądać następująco:

A to wynik naszego skryptu:

Kurs Excel VBA - Pole Kombi ComboBox

Kurs Excel VBA – Pole Kombi ComboBox

5. Budowa aplikacji do wprowadzania danych – Programowanie pola kombi ComboBox (Formant ActiveX) – Wprowadzanie wartości z pola Kombi ComboBox

By wprowadzić dane z naszych pól kombi do tabeli powinniśmy w kodzie obiektu Arkusz1 wprowadzić odniesienie do elementów ComboBox kolejno 1,2,3,4. W przypadku pól odpowiedzialnych za dzień, miesiąc, rok powinniśmy skorzystać z funkcji DateSerial(), by utworzyć datę z naszych elementów. Po zmodyfikowaniu kodu możemy go przetestować. Pamiętaj, że tą część kodu edytujemy w obiekcie Arkusz1.


Dodaj komentarz

Twój adres email nie zostanie opublikowany.

3 komentarzy do “Kontrolki ActiveX – Pole kombi ComboBox w Excel VBA