Avatar billede Siwi123 Nybegynder
18. august 2014 - 15:09 Der 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
Avatar billede finb Ekspert
18. august 2014 - 15:15 #1
Skal det absolut være Word ?
Excel har god validering.
Avatar billede claes57 Ekspert
18. august 2014 - 15:26 #2
utestet kode...

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)
Avatar billede Siwi123 Nybegynder
18. august 2014 - 15:27 #3
Ja, det skal være word. Det er i en userform tekstbox, der fletter strengen ind i et brev
Avatar billede claes57 Ekspert
18. august 2014 - 16:46 #4
de 2 steder med
if pos > 0
skal være
if pos = 0
Avatar billede Siwi123 Nybegynder
18. august 2014 - 17:29 #5
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 ;-)
Avatar billede claes57 Ekspert
18. august 2014 - 17:46 #6
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)

' valider bogstaver - bemærk to lange linjer nu.
Avatar billede claes57 Ekspert
18. august 2014 - 17:49 #7
hvad gør du med private plader? det er jo ikke alle der tager den billige model fra staten.
Avatar billede Siwi123 Nybegynder
18. august 2014 - 20:12 #8
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
Avatar billede claes57 Ekspert
18. august 2014 - 20:24 #9
bare for sjov kan du udvide når du har en nummerplade med et kald til
http://www.nummerplade.net/soeg/?regnr=ah74584
hvis altså nummerpladen er ah74584
så kan du se data på bilen
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester