Makro sprawdzające poprawność numeru PESEL w Excel-u

Pracując w działach analiz i zajmując się tworzeniem różnych statystyk niejednokrotnie będziemy zmuszeni opracowywać formuły uzyskujące dane osoby na podstawie numeru PESEL, np. o dacie urodzenia danej osoby lub obliczające aktualny wiek. Aby być pewnym, że dana formuła zadziała prawidłowo i wyświetli prawidłowe wyniki na samym początku proponowałbym sprawdzić czy dany numer PESEL jest poprawny.

Proponuję dodanie banalnie prostej funkcji, która bardzo szybko wykona za nas to zadanie. W tej sytuacji przyjdzie nam z pomocą Visual Basic for Applications. Uruchomiamy go bezpośrednio 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_pesel(pesel As String) As Boolean
Dim t1, t2 As Integer
Sprawdz_pesel = True
If Len(pesel) <> 11 Then
Sprawdz_pesel = False
Else
t1 = CInt(Mid(pesel, 11, 1))
t2 = (CInt(Mid(pesel, 1, 1)) * 1 + CInt(Mid(pesel, 2, 1)) * 3 + CInt(Mid(pesel, 3, 1)) * 7 + CInt(Mid(pesel, 4, 1)) * 9 + CInt(Mid(pesel, 5, 1)) * 1 + CInt(Mid(pesel, 6, 1)) * 3 + CInt(Mid(pesel, 7, 1)) * 7 + CInt(Mid(pesel, 8, 1)) * 9 + CInt(Mid(pesel, 9, 1)) * 1 + CInt(Mid(pesel, 10, 1)) * 3) Mod 10
t2 = 10 - t2
If t1 <> t2 Then Sprawdz_pesel = 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 PESEL i wciśnij kombinację klawiszy Shift+F3;
  • następnie wybierz kategorię: Zdefiniowane przez użytkownika, zaznacz utworzoną funkcję "Sprawdz_pesel", wybierz Argument funkcji (w naszym przykładzie A2) i zatwierdź OK;

 

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