Kontrolki ActiveX – Pole wyboru CheckBox w Excel VBA

1. Budowa aplikacji do wprowadzania danych – Wstawianie Pola wyboru CheckBox (Formant ActiveX)

W jaki sposób wstawić pole wyboru CheckBox? Osadzamy je w Excelu w analogiczny sposób jak przyciski opcji. Ważne jest to, że w odróżnieniu od przycisku opcji, możemy zaznaczyć jednocześnie kilka CheckBoxów. CheckBox zaznaczony przez użytkownika przyjmuje wartość True. Odznaczony wartość False. Dodajmy do naszej aplikacji jedno pole wyboru nad kolumną „Zgoda”. Następnie przechodząc do właściwości Properties zmieńmy wartość w polu Caption na „Zaznacz”.  Wstawimy w ten sposób etykietę naszego przycisku.

Kurs Excel VBA - Pole wyboru CheckBox
Kurs Excel VBA – Pole wyboru CheckBox

2. Budowa aplikacji do wprowadzania danych – Programowanie Pola wyboru CheckBox (Formant ActiveX)

Jak pobrać wartość pola wyboru CheckBox do kodu VBA? Jak wcześnie wspomnieliśmy, pole wyboru po zaznaczeniu przyjmuje wartość True. Spróbujmy je zaprogramować wykorzystując instrukcję warunkową If Then Else. Naszym celem jest wypełnienie kolumny „Zgoda marketingowa” wartością Tak lub Nie. Wchodzimy w Edytor VisualBasic. Edytujemy kod w obiekcie „Arkusz1”

If CheckBox1 = True Then
Cells(sngWiersz, 10) = "Tak"
Else: Cells(sngWiersz, 10) = "Nie"
End If

Przetestujmy wprowadzone przez nas zmiany. Cały kod zawarty w obiekcie Arkusz1 powinien wyglądać teraz następująco:

Private Sub CommandButton1_Click()

Dim sngId As Single
Dim sngWiersz As Single
Dim sngLoginLicznik As Single

'WYBIERANIE OSTATNIEGO NIEZAPISANEGO WIERSZA I NADAWANIE ID
sngId = 1 + Application.WorksheetFunction.Max(Range("A:A"))
sngWiersz = 6 + Application.WorksheetFunction.CountA(Range("A:A"))

'SPRAWDZANIE LOGINU
sngLoginLicznik = 7

Do While sngLoginLicznik <= sngWiersz

If Cells(sngLoginLicznik, 2) = LCase(TextBox1) Then
MsgBox "Ten login znajduje się już w bazie, wprowadź inny", vbCritical
GoTo endlabel
End If

sngLoginLicznik = sngLoginLicznik + 1
Loop

'WPROWADZANIE DANYCH
Cells(sngWiersz, 1) = sngId
Cells(sngWiersz, 2) = LCase(TextBox1)
Cells(sngWiersz, 3) = UCase(Left(TextBox2, 1)) & LCase(Mid(TextBox2, 2))
Cells(sngWiersz, 4) = StrConv(TextBox3, vbProperCase)
Cells(sngWiersz, 5) = LCase(TextBox4)
Cells(sngWiersz, 6) = ComboBox1
Cells(sngWiersz, 7) = DateSerial(ComboBox4, ComboBox3, ComboBox2)
Cells(sngWiersz, 8) = ListBox1

If OptionButton1 = True Then
Cells(sngWiersz, 9) = "Kobieta"
ElseIf OptionButton2 = True Then
Cells(sngWiersz, 9) = "Mężczyzna"
Else: Cells(sngWiersz, 9) = ""
End If

If CheckBox1 = True Then
Cells(sngWiersz, 10) = "Tak"
Else: Cells(sngWiersz, 10) = "Nie"
End If
endlabel:
End Sub

Dodaj komentarz

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

Komentarz do “Kontrolki ActiveX – Pole wyboru CheckBox w Excel VBA”