05. april 2005 - 09:21Der er
6 kommentarer og 1 løsning
Modulus 11 med datavalidering
Hej VBA eksperter
Jeg har i spørgsmål 266976 fundet nedenstående kode til test af CPR-nr.
Function cprtest(txtRegistrantCPR As String) As Boolean Dim Xvar As Long Dim SlutCiffer As Long Dim Resultat As Long If Not IsNull(txtRegistrantCPR) Then Xvar = Val(Mid(txtRegistrantCPR, 1, 1)) * 4 Xvar = Xvar + Val(Mid(txtRegistrantCPR, 2, 1)) * 3 Xvar = Xvar + Val(Mid(txtRegistrantCPR, 3, 1)) * 2 Xvar = Xvar + Val(Mid(txtRegistrantCPR, 4, 1)) * 7 Xvar = Xvar + Val(Mid(txtRegistrantCPR, 5, 1)) * 6 Xvar = Xvar + Val(Mid(txtRegistrantCPR, 6, 1)) * 5 Xvar = Xvar + Val(Mid(txtRegistrantCPR, 7, 1)) * 4 Xvar = Xvar + Val(Mid(txtRegistrantCPR, 8, 1)) * 3 Xvar = Xvar + Val(Mid(txtRegistrantCPR, 9, 1)) * 2 SlutCiffer = Val(Mid(txtRegistrantCPR, 10, 1)) Resultat = 11 - (Xvar Mod 11) If Resultat = 11 Then esultat = 0 End If
If Resultat = SlutCiffer Then cprtest = True Else cprtest = False MsgBox "Forkert CPR-nummer" End If Else cprtest = Null End If End Function
Ovenstående funktion er skrevet til brug i en dialogbox.
Jeg vil høre om der er en der kan hjælpe med at rette ovenstående til således, at jeg kan teste indtastningen af et CPR-nr. i en celle ved brug funktionen indsat i datavalidering?
Nej, den holder desværre alligevel ikke helt. Du kan ikke bruge brugerdefinerede funktioner i datavalidering. I stedet må du så lave en celle, der beregner funktionen og i datavalidering skriver du så blot
Jeg kan godt få din funktion til at virke ved at indsætte =cprtest(A1) i selve arket. Jeg kan dog ikke få den til at virke i datavalidering. Der kommer den og fortæller mig:
Du har angivet navnet på et område, der ikke findes.
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.