Kontrolki ActiveX – Przycisk pokrętła SpinButton w Excel VBA

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.

Kurs Excel VBA - Przycisk pokrętła SpinButton
Kurs Excel VBA – Przycisk pokrętła SpinButton

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

Dodaj komentarz

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

Komentarz do “Kontrolki ActiveX – Przycisk pokrętła SpinButton w Excel VBA”