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.
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
Komentarz do “Kontrolki ActiveX – Pole wyboru CheckBox w Excel VBA”
aplikacja już całkiem całkiem