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?