1. Budowa aplikacji do wprowadzania danych – Wstawianie Przycisku pokrętła – SpinButton (Formant ActiveX)
Kolejną kontrolką ActiveX, którą poznamy jest kontrolka przycisku pokrętła. Wykorzystamy ją do nawigacji, a dokładnie przesuwania wierszy arkusza w dół i w górę. Naszym celem jest, by kliknięcie górnej strzałki przyciski skutkowało przesunięciem widoku wierszy arkusza o jednej w górę. W przypadku kliknięcia strzałki w dół – widok arkusza powinien przesuwać się w dół. W jaki sposób wstawić przycisk pokrętła SpinButton? Wchodzimy w zakładkę Developer. Z ikony wstaw wybieramy przycisk pokrętła i wstawiamy go nad ostatnią kolumną naszej tabeli.
2. Budowa aplikacji do wprowadzania danych – Programowanie przycisku pokrętła SpinButton (Formant ActiveX)
Z uwagi na to, że przycisk, jak i wszystkie kontrolki naszej aplikacji znajdują się w Arkuszu1, przycisk pokrętła także programujemy w obiekcie Arkusz1 w Edytorze VisualBasic. Przypiszmy dla przycisku następujący kod, wybierając wcześniej wyzwalacze SpinUp i SpinDown :
Private Sub SpinButton1_SpinUp() ActiveWindow.SmallScroll up:=1 End Sub Private Sub SpinButton1_SpinDown() ActiveWindow.SmallScroll down:=1 End Sub
Strzałki przycisku powinny już prawidłowo działać. Pojedyncze kliknięcie górnej strzałki spowoduje przesunięcie widoku arkusza w górę. Program zadziała odwrotnie, gdy klikniemy strzałkę dolną. Kod naszego programu w obiekcie Arkusz1 wygląda 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 Private Sub CommandButton2_Click() TextBox1 = "" TextBox2 = "" TextBox3 = "" TextBox4 = "" ComboBox1 = "" ComboBox2 = "" ComboBox3 = "" ComboBox4 = "" ListBox1 = "" OptionButton1 = False OptionButton2 = False CheckBox1 = False End Sub Private Sub SpinButton1_SpinUp() ActiveWindow.SmallScroll up:=1 End Sub Private Sub SpinButton1_SpinDown() ActiveWindow.SmallScroll down:=1 End Sub
Komentarz do “Kontrolki ActiveX – Przycisk pokrętła SpinButton w Excel VBA”
Jest jakieś inne zastosowanie dla tego przycisku?