Jak stworzyć formularz w Excelu który sprawdzi numeru NIP
Jak stworzyć formularz w Excelu który sprawdzi numeru NIP
W tym artykule pokaże krok po kroku jak stworzyć formularz, następnie zostanie on sformatowany i oprogramowany. Kod który zostanie użyty jest dostępny do pobrania.
Tworzenie formularza
Na wstążce wchodzimy w kartę „Deweloper” następnie wybieramy „Visual Basic”.
Można równe użyć skrótu Alt+F11 aby otworzyć nasze środowisku w którym będziemy pracować.
Po uruchomieni Visual Basic musimy dodać nasz formularz do projektu. W celu dodania nowego formularz klikamy prawym przyciskiem na katalog „Forms” a następnie „Insert” i wybieramy „UserForm”
Do naszego formularza „TextBox”, „Label” oraz „CommandButton” wszystkie te elementy znajdziemy na „Toolbox” który powinien pojawić się wraz z dodaniem naszego formularza. Jeżeli jednak nie widzimy „Toolbox” możemy go aktywować z menu
Po dodaniu naszych elementów na formularz powinien on wyglądać mniej więcej tak:
Aby kod który będzie prezentowa poniżej zadziałał należy ustawić takie samo nazewnictwo naszych elementów. Klikając prawym na dany element i wybierając z listy „Properties”.
Przechodzimy do ustawień naszego elementu.Jedyną wymaganą zmiana jaką musimy wprowadzić dotyczy pola „(Name)”. W tym wypadku wpiszemy „TextBox_Nip”
Kolory, wymiary, i inne formatowanie jest opcjonalne.
Czynność tą powtarzamy również dla innych elementów kolejne nazwy to:
- TextBox_Suma_Kontrolna
- TextBox_Wynik
Nazwy dla naszych przycisków
- CommandButton_Wyczysc
- CommandButton_Sprawdz
Zmieńmy również nazwę naszego formularz
- SprawdzNip
Ustawiamy nasz formularz aby z automatu został uruchomiony podczas otwierania pliku.Aby to zrobić klikamy dwa razy na „Ten_skoroszyt”
Następnie przepisujemy poniższy kod:
Private Sub Workbook_Open() SprawdzNip.Show End Sub
Kolejnym krokiem będzie zaprogramowanie naszego przyciski „Sprawdź”. Klikamy w niego dwukrotnie i przechodzimy do zaprogramowania działania.
Private Sub CommandButton_Sprawdz_Click() Dim LiczbaKontrolna, Suma As Integer If Not (IsNumeric(TextBox_Nip.Value) Or IsEmpty(TextBox_Nip.Value)) Then MsgBox "Proszę wpisać tylko liczby, Pole nie może być puste", , TextBox_Nip.Name ElseIf Len(TextBox_Nip.Value) <> 10 Then TextBox_Wynik.Value = "za mało / za dużo znakow" Else: LiczbaKontrolna = CInt(Mid(TextBox_Nip.Value, 10, 1)) Suma = (CInt(Mid(TextBox_Nip.Value, 1, 1)) * 6 + CInt(Mid(TextBox_Nip.Value, 2, 1)) * 5 + CInt(Mid(TextBox_Nip.Value, 3, 1)) * 7 + CInt(Mid(TextBox_Nip.Value, 4, 1)) * 2 + CInt(Mid(TextBox_Nip.Value, 5, 1)) * 3 + CInt(Mid(TextBox_Nip.Value, 6, 1)) * 4 + CInt(Mid(TextBox_Nip.Value, 7, 1)) * 5 + CInt(Mid(TextBox_Nip.Value, 8, 1)) * 6 + CInt(Mid(TextBox_Nip.Value, 9, 1)) * 7) Mod 11 If Suma = LiczbaKontrolna Then TextBox_Wynik.Value = "Dobry NIP" TextBox_Suma_Kontrolna.Value = "Modulo: " & Suma & " Liczba kontrolna: " & LiczbaKontrolna Else: TextBox_Wynik.Value = "Zły NIP" TextBox_Suma_Kontrolna.Value = "Modulo: " & Suma & " Liczba kontrolna: " & LiczbaKontrolna End If End If End Sub
Oraz zaprogramowanie przycisku „Wyczyść” poniżej kod który należy wkleić:
Private Sub CommandButton_Wyczysc_Click() TextBox_Nip.Value = Null TextBox_Suma_Kontrolna.Value = Null TextBox_Wynik.Value = Null End Sub
Test formularza
Aby przetestować czy nasz program działa prawidłowo naciskamy „F5”. Jeżeli wszystko zostało wykonane zgodnie z instrukcją powyżej, wszystkie nazwy się zgadzają zostanie uruchomiony formularz tak jak na poniższym zdjęciu.
Program sprawdza w pierwszej kolejności czy podany został wpisany ciąg znaków składający się tylko z cyfr oraz czy pole nie jest puste w przypadku błędu zostaje wyświetlony komunikat:
Następnie sprawdzana jest ilość znaków wpisana jeżeli ilość jest inna niż 10 użytkownik zostanie o tym poinformowany w polu „Wynik”
W przypadku gdy podany numer NIP jest prawidłowy reszta z dzielenia przez 11 dla sumy kontrolnej jest równa liczbie kontrolnej to użytkownik również zostanie o tym poinformowany
Jako zadanie napisz kod który odpowiada za zmianę koloru w polu tekstowym.
Jeżeli NIP jest prawidłowy kolor ma być zielony a jeżeli podany numer jest zły to kolor czerwony. Rozwiązanie umieść w komentarzu pod tym wpisem
Zapraszam do zapoznania się również z wpisem na temat weryfikacji numeru PESEL tutaj