Kontrolki ActiveX – Etykieta Label w Excel VBA

1. Budowa aplikacji do wprowadzania danych – Wstawianie Etykiety – Label (Formant ActiveX) 

Etykieta Label jest już nam znana i nie powinna wymagać szerszego omówienia. Jak wstawić Etykietę Label? Spośród formantów ActiveX w zakładce Developer wybieramy formant Etykieta. Następnie wstawiamy 3 etykiety obok pól kombi odpowiadających za wprowadzanie dnia, miesiąca i roku. Ich nazwę możemy zmienić we właściwościach formantu edytując pozycję Caption. Następnie wstawmy etykietę nagłówka dla naszej aplikacji. Nazwijmy ją „Wprowadzanie danych”. Wielkość czcionki etykiety możemy zmienić także we właściwościach edytując pozycję Font. Dla potrzeb aplikacji wybierzmy czcionkę 18px.

Kurs Excel VBA - Etykieta Label
Kurs Excel VBA – Etykieta Label

2. Programowanie pozostałych elementów aplikacji

Spośród elementów do zaprogramowania w naszej aplikacji pozostało nam jeszcze wstawianie daty dodania rekordu. Z wykorzystaniem funkcji Date() zmieniamy kod naszego programu w obiekcie Arkusz1.

Cells(sngWiersz, 11) = Date

Poza samą datą wprowadzenia chcielibyśmy, by po każdorazowym wprowadzeniu danych nasz formularz czyścił swoje pola, jak po kliknięciu przycisku „Wyczyść”. Chcielibyśmy także, by wprowadzenie pojedynczego rekordu wywoływało okno MsgBox z informacją o powodzeniu operacji.

MsgBox "Dane zostały wprowadzone"

TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""

ComboBox1 = ""
ComboBox2 = ""
ComboBox3 = ""
ComboBox4 = ""

ListBox1 = ""

OptionButton1 = False
OptionButton2 = False

CheckBox1 = False

Kod naszego programu w obiekcie Arkusz1 wygląda następująco. W dole artykułu załączony został także plik aplikacji, którą napisaliśmy.Tak, tak, to już koniec programowania naszej aplikacji:)

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

Cells(sngWiersz, 11) = Date

MsgBox "Dane zostały wprowadzone"

TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""

ComboBox1 = ""
ComboBox2 = ""
ComboBox3 = ""
ComboBox4 = ""

ListBox1 = ""

OptionButton1 = False
OptionButton2 = False

CheckBox1 = False

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

Plik: Wprowadzanie_danych_osobowych.xlsm

Dodaj komentarz

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

5 komentarzy “Kontrolki ActiveX – Etykieta Label w Excel VBA”