Formularz UserForm – Pole kombi ComboBox w Excel VBA

1. Jak wstawić pole kombi ComboBox do formularza UserForm?

Pole kombi jest już nam znane. Poznaliśmy je przy okazji tworzenia aplikacji do wprowadzania danych. Z uwagi na to, że pole wstawione w formularz UserForm programowane jest w innym miejscu, stworzymy przykład w którym pokażemy jak je programować. Z przybornika ToolBox wybierzmy kontrolkę ComboBox i wstawmy ją na prawo od pola TextBox1 i TextBox3 w dwóch pierwszych zakładkach naszej aplikacji. Nasze pola powinny się nazywać ComboBox1 i ComboBox2.

Kurs Excel VBA - Pole Kombi ComboBox
Kurs Excel VBA – Pole Kombi ComboBox

2. Jak zaprogramować listę pola kombi ComboBox?

Kolejnym krokiem jest zaprogramowanie listy, która będzie się wyświetlała po kliknięciu w pole. W odróżnieniu od formantów ActiveX wstawianych do arkusza danych, pole ComboBox w formularzu UserForm programowane jest bezpośrednio w kodzie formularza UserForm. Przechodzimy kolejno w oknie project do widoku View Code formularza UserForm. Najważniejszą rzeczą jest ustawienie w oknie Code obiektu UserForm i wyzwalacza Initialize. Dzięki temu wartości do pola ComboBox załadują się podczas uruchamiania formularza.

Kurs Excel VBA - Pole Kombi ComboBox
Kurs Excel VBA – Pole Kombi ComboBox

Kod w wyzwalacza Initialize programujemy identycznie jak w przypadku zwykłych kontrolek ActiveX. Ustawiamy wartości od razu dla obydwu pól kombi. Przykład poniżej:

Private Sub UserForm_Initialize()

With ComboBox1
 .AddItem 5
 .AddItem 8
 .AddItem 23
End With

With ComboBox2
 .AddItem 5
 .AddItem 8
 .AddItem 23
End With
End Sub

W następnej kolejności powinniśmy zaprogramować przyciski CommandButton w dwóch pierwszych zakładkach naszego programu. Kliknijmy dwukrotnie na przycisk w zakładce „Netto na brutto”. Przycisk CommandButton1 programujemy w następujący sposób wykorzystując pola TextBox1, TextBox2 oraz ComboBox1:

Private Sub CommandButton1_Click()
TextBox2 = TextBox1 + TextBox1 * (ComboBox1 / 100)
End Sub

W powyższym kodzie zaprogramowaliśmy wypełnienie pola TextBox2 po wyborze stawki VAT. Analogiczne działanie wykonujemy dla przycisku CommandButton2 w zakładce „Brutto na netto”. Całość naszego kodu w obiekcie UserForm wygląda następująco:

Private Sub CommandButton1_Click()
TextBox2 = TextBox1 + TextBox1 * (ComboBox1 / 100)
End Sub

Private Sub CommandButton2_Click()
TextBox4 = TextBox3 / (1 + (ComboBox2 / 100))
End Sub

Private Sub UserForm_Initialize()

With ComboBox1
 .AddItem 5
 .AddItem 8
 .AddItem 23
End With

With ComboBox2
 .AddItem 5
 .AddItem 8
 .AddItem 23
End With
End Sub

Na zakończenie do zakładki „O programie” możemy wprowadzić dowolny tekst za pomocą np etykiety Label. Treść etykiety wstawmy w ramkę wybierając wcześniej Frame.

Kurs Excel VBA - Pole Kombi ComboBox
Kurs Excel VBA – Pole Kombi ComboBox

Poniżej załączam plik z naszym programem:

Forumularz_userform_kalkulator_brutto_netto

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Komentarz do “Formularz UserForm – Pole kombi ComboBox w Excel VBA”