Avatar billede KenneyD71 Nybegynder
20. august 2015 - 18:37 Der er 6 kommentarer og
1 løsning

VBA Validering af CPR, Text box, format ddmmåå-llll; input til celle

text box txtCPR.VALUE ønsker jeg at validere.

Der skal være bindestreg som 7 felt og input til celle skal være DDMMÅÅ-LLLL
DD=01-31;MM=01-12; åå=00-99; 7. tegn= "-"; llll=4 tegn.

derudover er der ingen behov for validering inden der skrives til celle.

Altså: Først validering, hvis ja - så input, hvis nej, mxgbox "fejl i format".

Nogle, der kan hjælpe?
Avatar billede claes57 Ekspert
20. august 2015 - 19:02 #1
Brugervenlighed: hvis det indtastes uden bindestreg, så indsæt den automatisk - det er ikke en fejl. Og LLLL skal være et tal.

der skal en makro til:
1) de første 6 tegn - sæt '/' mellem M og Å - sæt '/' mellem D og M - og test isdate() det dur jo ikke med 31. feb
2) er der '-' i 7'ende tegn? ellers indsæt det
3) er tegn fra 8-11 et tal?
Avatar billede KenneyD71 Nybegynder
20. august 2015 - 19:13 #2
Det, og så meget andet, står i en userform hvor et af input-felterne er CPR.

Det er ikke så vigtigt om det er med eller uden "-". Det er bare vigtigt at der bliver leveret DDMMÅÅ-LLLL til cellen, og ja. 8-11 er et tal (som standard cpr).
Avatar billede claes57 Ekspert
20. august 2015 - 21:14 #3
jeg har så tænkt noget i fri tekst i stil med dette

cprfelt = userform...?
cprdate = left(cprfelt,6)
cprdate = left(cprdate,4) & "/" & right(cprdate,2)
cprdate = left(cprdate,2) & "/" & right(cprdate,5)
tekst=""
if isdate(cprdate) then
' dato ok
  if mid(cprfelt(7,1) <> "-" then cprfelt = left(cprfelt,6) & "-" & right(cprfelt,4)
  if not IsNumeric(right(cprfelt,4) then tekst = "løbenummer er ikke et tal"
else
  tekst = "ikke gyldig dato i cprnumer"
end if
if tekst <> "" then
msgbox tekst
else
return cprfelt
end if

bare se, om du kan bruge noget af det.
Avatar billede Dan Elgaard Ekspert
21. august 2015 - 08:05 #4
Prøv osse at kigge her:
http://www.EXCELGAARD.dk/Bib/CPR/
Avatar billede supertekst Ekspert
21. august 2015 - 11:19 #5
#4 Til orientering :-)

I de gode gamle dage, før verden gik af lave, fik man endda et personnummerbevis, så man altid kunne bevise, at man have et dansk personnummer!
Jeg har stadig mit - udstedt i 1969 - da jeg var 2 år gammel - og sirligt udfyldt af en eller anden kontormus i Indenrigsministeriet - på et gammelt hakkebræt af en skrivemaskine (før EDB og IT gjorde sit indtog).
CPR-nummeret blev indført i 1968, og det har sikkert taget lang tid, at sidde og udfylde personnummerbeviser, til hele Danmarks befolkning, manuelt på skrivemaskine, og i mit tilfælde gik der altså godt et år, før jeg fik mit bevis :-)

Ikke skrivemaskine - men på printer - EDB var opfundet og blev anvendt i administrationen dengang.
Begyndte selv i EDB-branchen i 1966 (programmør hos NCR)
Avatar billede KenneyD71 Nybegynder
24. august 2015 - 11:40 #6
Tak for hjælpen Claes. Det var meget brugbart.

Husk at hente dine point.
Avatar billede claes57 Ekspert
24. august 2015 - 11:49 #7
Ok
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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