21. marts 2008 - 22:39Der er
12 kommentarer og 1 løsning
validering af dato i VBA
jeg har en userform i excel og noget kode i VBA
i en textbox kan man indtaste en dato i formatet "dd-mm-yyyy" og så klikke på en knap "opdater" problemer er at hvis man skriver 24-12-2007 så virker det fint, men skriver man 12-24-2007 så acceptere den det, men gemmer det så i variablen som 12-24-2007, jeg vil gerne have den til at "fejle"
Det kan tage ½ krig at tjekke datoformater, men ovenstående problem kan løses således:
******************** Public Function CorrectDate(strDate As String) As Boolean Dim varTemp As Variant
varTemp = Split(strDate, "-") If varTemp(1) > 12 Then MsgBox "Dette er ikke korrekt datoformat. Indtast venligst som dd-mm-åååå.", vbExclamation, "Dato" CorrectDate = False Else CorrectDate = True End If End Function **************
Jeg har lagt en msgbox ind i funktionen, men den kan du selvfølgelig have andetsteds, hvis du foretrækker.
Not if you enter it as 12-11-2008. If the user enters a date in mm-dd-yyyy format then there is no way you can be sure the date has been entered incorrectly.
You could format the date so it can be entered dd-mm-yyyy but displayed 22. marts 2008 which can help eliminate date problems.
tak til begge, smid et svar word-haj, den vba kode du har skrevet er løsningen. jeg tænkte selv på at lave noget i den stil, men håbede der var en slags indbygget funktion til at tjekke det.
Der er en indbygget funktion til at tjekke om noget er en dato, men 11-24-2008 ER en dato - det er så bare 24. november 2008. Det er en af årsagerne til at validering af datoer er et mareridt, medmindre man bruger en kalenderkontrol, som terry foreslår.
terry -> Nu skrev du selv, at man indtastede 11-12-2008. Min første kommentar går alene på at fange, at man har tastet en "måned", der ikke eksisterer, dvs. over 12. Men ellers kender du sikkert selv til alt omkring formatering/validering af datoer.
En kalenderkontrol viser en kalender, hvor man så kan klikke på den dato, som man ønsker at bruge. På den måde kan man komme ud over, at en bruger taster et forkert format.
Prøv at højreklikke på din Toolbox i vba. Vælg additional controls. Klik af i Calendar control. Sæt en calendar control på en form. Der findes også diverse Datepicker kontroller, der kan downloades/købes og benyttes.
Synes godt om
Ny brugerNybegynder
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.