Witam,
Mam problem z przerobieniem makra do sprawdzania peselu na generator. Generator powinien liczyć cyfre kontrolną oraz dobierać 6 pierwszych cyfr na podstawie podanej daty i potem cyfrę płci.
Szukam chociaż naprowadzenia jak to zacząć.
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub sprawdzaj_pesel_Click()
pesel = TextBox1.Text
imie = TextBox2.Text
nazwisko = TextBox3.Text
rok = Val(Mid(pesel, 1, 2))
suma = 0
For i = 1 To 10
cyfra = Val(Mid(pesel, i, 1))
'wersja z IF
'If i = 1 Or i = 5 Or i = 9 Then
'm = 1
'ElseIf i = 2 Or i = 6 Or i = 10 Then
'm = 3
'ElseIf i = 3 Or i = 7 Then
'm = 7
'Else:
'm = 9
'End If
'wersja z select case
Select Case i
Case 1, 5, 9
m = 1
Case 2, 6, 10
m = 3
Case 3, 7
m = 7
Case 4, 8
m = 9
End Select
suma = suma + cyfra * m
Next i
cyfrak = (10 - (suma Mod 10)) Mod 10
If cyfrak <> Val(Mid(pesel, 11, 1)) Then
MsgBox ("PESEL niepoprawny, wpisz jeszcze raz")
TextBox1.Text = ""
Else
rok = Val(Mid(pesel, 1, 2))
miesiąc = Val(Mid(pesel, 3, 2))
dzien = Val(Mid(pesel, 5, 2))
If miesiąc < 20 Then rok = 1900 + rok
If miesiąc > 20 And miesic < 40 Then rok = rok + 2000
If miesiąc > 40 And miesic < 60 Then rok = rok + 2100
If miesiąc > 60 And miesic < 80 Then rok = rok + 2200
If miesiąc > 80 And miesic < 99 Then rok = rok + 1800
miesiąc = miesiąc Mod 20
Label1.Caption = imie & " " & nazwisko & "- data urodzenia - " & dzien & "." & miesiąc & "." & rok
If Val(Mid(pesel, 10, 1)) Mod 2 > 0 Then
Label1.Caption = Label1.Caption & " Jest mężczyzną"
TextBox8.Text = "M"
End If
If Val(Mid(pesel, 10, 1)) Mod 2 = 0 Then
Label1.Caption = Label1.Caption & " Jest kobietą"
TextBox8.Text = "K"
End If
End If
TextBox4.Text = dzien
TextBox5.Text = miesiąc
TextBox6.Text = rok
End Sub
Private Sub TextBox1_Change()
znak = Mid(TextBox1.Text, Len(TextBox1.Text), 1)
If (znak < 0 Or znak > 9) Then
MsgBox ("znak nie jest cyfrą")
TextBox1.Text = Mid(TextBox1.Text, 1, Len(TextBox1.Text) - 1)
End If
End Sub