18. august 2014 - 15:09Der er
8 kommentarer og 1 løsning
VBA Word Validering af teksbox til registreringsnr på bil
Jeg ønsker at validere en teksbox for indtastningen af et registreringsnr på en bil. Dvs Første to karakterer er bogstaver fra a-z og de sidste 6 er numeriske værdier.
Hvis det bliver for avanceret en kode overvejer jeg også at man kunne lave 2 tekstbokse og validere den første på 2 bogstaver og den næste på 6 tal. /Mvh Simon
nrplade = textbox.text fejltext = "" ' fjern mellemrum og punktum nrplade = replace(replace(nrplade," ",""),".","") if len(nrplade) <> 7 then fejltext = fejltext & "ikke korrekt antal tegn, " ' valider bogstaver tegn = lcase(mid(nrplade,1,1)) pos = instr(tegn,"abcdefghijklmnopqrstuvwxyz") if pos > 0 then fejltext = fejltext & "første tegn er ikke et bogstav, " tegn = lcase(mid(nrplade,2,1)) pos = instr(tegn,"abcdefghijklmnopqrstuvwxyz") if pos > 0 then fejltext = fejltext & "andet tegn er ikke et bogstav, " ' valider tal if not isnumeric(mid(nrplade,3,5)) then fejltext = fejltext & "der skal være 5 tal, " if len(fejltext)>0 then msgbox(fejltext)
Tak Claes57, Det fungerer til at validerer at det skal slutte på 5 tal og der skal være 7 tegn, men ikke at det skal starte med to bogstaver. (undskyld iøvrigt at jeg skrev 6 tal i spørgsmålet, der er self 5 tal i en nrplade ;-)
instr er vendt forkert mht parametre - jeg retter til
nrplade = textbox.text fejltext = "" ' fjern mellemrum og punktum nrplade = replace(replace(nrplade," ",""),".","") if len(nrplade) <> 7 then fejltext = fejltext & "ikke korrekt antal tegn, " ' valider bogstaver if instr("abcdefghijklmnopqrstuvwxyz",lcase(mid(nrplade,1,1))) = 0 then fejltext = fejltext & "første tegn er ikke et bogstav, " if instr("abcdefghijklmnopqrstuvwxyz",lcase(mid(nrplade,2,1))) = 0 then fejltext = fejltext & "andet tegn er ikke et bogstav, " ' valider tal if not isnumeric(mid(nrplade,3,5)) then fejltext = fejltext & "der skal være 5 tal, " if len(fejltext)>0 then msgbox(fejltext)
Cool, tak for det. Jeg har i mellemtiden fundet inspiration andre steder og fundet frem til denne løsning Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) nrplade = TextBox1.Text fejltext = ""
If Len(nrplade) <> 7 Then fejltext = fejltext & "Indtast præcis 7 tegn - " ' valider bogstaver Dim i As Integer Dim sTemp As String Dim iLen As Integer Dim iCtr As Integer Dim sChar As String
i = 0 sTemp = LCase(Mid(nrplade, 1, 2)) MsgBox (sTemp) iLen = Len(sTemp) If iLen > 0 Then
For iCtr = 1 To iLen sChar = Mid(sTemp, iCtr, 1) If Not sChar Like "[A-Za-z]" Then i = i + 1
Next End If
If i > 0 Then fejltext = fejltext & "De første 2 tegn skal være bogstaver fra A-Z - " End If
' valider tal If Not IsNumeric(Mid(nrplade, 3, 5)) Then fejltext = fejltext & "Der skal være 5 tal tilsidst" If Len(fejltext) > 0 Then MsgBox (fejltext) End Sub
Du har ret i at den ikke virker til indtastning af private og specielle nummerplader. Men det er til skolebrug så det går fint Hilsen Simon
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.