Hvordan skal man validere et CPR-nummer med en Modulus 11-kontrol? Jeg ved godt, at man skal gange CPR nummer med 432765432. dvs. Første tal gange med 4 Anden tal gange med 3 osv. Men hvordan så man ganger hver eneste tal i VBA? Har ingen ide!
Formlen forudsætter at cpr-nummeret indtastes celle A1 i formatet xxxxxx-xxxx, altså med bindestreg. Hele formlen skal indtastes ud i et:
=HVIS(VÆRDI(HØJRE(A1;1))=11-REST(VENSTRE(A1)*4+MIDT(A1;2;1)*3+MIDT(A1;3;1)*2+MIDT(A1;4;1)*7+MIDT(A1;5;1)*6+MIDT(A1;6;1)*5+(MIDT(A1;8;1)*4+MIDT(A1;9;1)*3)+MIDT(A1;10;1)*2;11);"Cpr-nummer OK";"Cpr-nummer ikke gyldigt")
Og vær opmærksom på, at Modulus 11 kontrollen ikke virker på alle cpr-numre udstedt efter 2007, hvor den blev afskaffet.
daffodil : har prøvet det, men det lykkes ikke. Værdien/resultatet af beregningen/valideringen skal indsættes fra J1 til J68 Kan du se, hvad jeg mangler ?
Har skrevet følgende:
Sub cprtest() Dim Xvar As Long Dim Resultat As Long Dim txtRegistrantCPR Dim antalPatienter Dim CPR Dim SlutCiffer
If Resultat = 11 Then Resultat = 0 End If If Resultat <> SlutCiffer Then MsgBox "Forkert CPR-nummer" End If End If
End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.