Avatar billede tonika Nybegynder
11. november 2009 - 12:50 Der er 5 kommentarer og
1 løsning

vba excel date validering

Hej

Jeg har et excel (2003) ark som jeg har lavet en del vba kode til for at tjekke for en masse forskellige værdier.

Det sidste jeg mangler er de kolonner der indeholder datoer. Jeg vil gerne tjekke for at de indeholder den rette syntaks dvs. 'dd-mm-yyyy' og således ikke indeholder punktum eller dd f.eks er 35.

Jeg har lavet en del java kode før og der ville jeg have valideret ved hjælp af bl.a. Regular Expressions. Men jeg kan ikke finde noget tilsvarende i vba.

Den såkalde isDate() er jo heller ikke specielt nyttig da den jo accepterer næsten hvad som helst.

Er der nogen der kender en let metode til at validere at en dato er en dato i vba ? På forhånd tak for hjælpen.
Avatar billede tjacob Juniormester
11. november 2009 - 14:30 #1
Du kan godt bruge en begrænset version af Regular Expressions i VBA (I hvert fald i min 2007), men biblioteket er ikke indlæst som standard.

I Visual Basic gå ind i Tools>References...
Bladr ned i listen, og find "Microsoft VBScript Regular Expressions 5.5" og kryds den af og klik OK.

Her er et kodeeksempel. Hvis du selv kender RE kan du måske finde et bedre Pattern. Det tjekker IKKE dage i februar - skudår -om der er 30 eller 31 dage i en måned m.m.

Det tjekker syntaksen med bindestreger, at dage er 1 til 31, at måned er 1 til 12, og at år er fire cifre:

    Dim reX As RegExp, sDato As String, pMatches As MatchCollection
    Set reX = New RegExp
    reX.Pattern = "^(0[1-9]|[1-2][0-9]|3[01])-(0[1-9]|1[0-2])-\d\d\d\d$"
    sDato = "31-01-2009"
    Set pMatches = reX.Execute(sDato)
    If pMatches.Count > 0 Then MsgBox "OK"
Avatar billede tjacob Juniormester
11. november 2009 - 14:37 #2
For i øvrigt er du i den forkerte kategori:

Denne kategori er til VB.NET

Du kunne have oprettet spørgsmålet i Excel: http://www.eksperten.dk/spm/Programmer/Regneark/Excel/

eller i den "gamle" VB kategori: http://www.eksperten.dk/spm/Programmering/Visual-Basic/
Avatar billede tonika Nybegynder
13. november 2009 - 16:51 #3
Tak for hjælpen. Jeg vender tilbage når jeg har kigget på det.
Avatar billede tonika Nybegynder
18. november 2009 - 14:01 #4
Så fik jeg kigget på det og det virker perfekt. Tusind tak for hjælpen.

Beklager at jeg lagde det et forkert sted...
Avatar billede tonika Nybegynder
18. november 2009 - 14:07 #5
Smid et svar så jeg kan give dig point ;-)
Avatar billede tjacob Juniormester
18. november 2009 - 14:23 #6
OK, -svar.
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
Kurser inden for grundlæggende programmering

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