Makro weryfikujące poprawność numeru NIP w Excel-u

Podczas wprowadzania numerów PESEL, REGON czy NIP bardzo łatwo o pomyłkę. Wiele osób zapewne się już przekonało jak czasochłonne jest poprawianie a wcześniej wyszukiwanie błędów. Dlatego na samym początku proponuję zanim jeszcze zaczniemy dalsze obliczenia sprawdzić czy dany numer PESEL, NIP został poprawnie wprowadzony.

W tej sytuacji postępujemy podobnie jak przy sprawdzaniu numeru PESEL a mianowicie uruchamiamy Visual Basic for Applications z zakładki Deweloper lub za pomocą skrótu klawiszowego: Alt+F11.

Definiowanie funkcji

Otwieramy edytor Visual Basic for Applications i dodajemy nowy Modul jeśli jeszcze nie posiadamy. Następnie tworzymy funkcję, której kod prezentuje się następująco:

Public Function Sprawdz_nip(nip As String) As Boolean
Dim t1, t2 As Integer
Sprawdz_nip = True
If Len(nip) <> 10 Then
Sprawdz_nip = False
Else
t1 = CInt(Mid(nip, 10, 1))
t2 = (CInt(Mid(nip, 1, 1)) * 6 + CInt(Mid(nip, 2, 1)) * 5 + CInt(Mid(nip, 3, 1)) * 7 + CInt(Mid(nip, 4, 1)) * 2 + CInt(Mid(nip, 5, 1)) * 3 + CInt(Mid(nip, 6, 1)) * 4 + CInt(Mid(nip, 7, 1)) * 5 + CInt(Mid(nip, 8, 1)) * 6 + CInt(Mid(nip, 9, 1)) * 7) Mod 11
If t2 = 10 Then t2 = 0
If t1 <> t2 Then Sprawdz_nip = False
End If
End Function

Aby zastosować w skoroszycie nową funkcję wystarczy użyć jej analogicznie jak każdą inną funkcję Excela.

  • ustaw się w pustej komórce, najlepiej obok wprowadzonego numeru NIP i wciśnij kombinację klawiszy Shift+F3;
  • następnie wybierz kategorię: Zdefiniowane przez użytkownika, zaznacz utworzoną funkcję "Sprawdz_nip", wybierz Argument funkcji (w naszym przykładzie A2) i zatwierdź OK.

Makro kontrolujące poprawność numeru NIP w Excel-u 

  • następnie skopiuj wstawioną funkcję poniżej, klikając dwukrotnie lewym przyciskiem myszy prawy dolny róg komórki B2.