Avatar billede gnalling1 Nybegynder
23. maj 2005 - 20:00 Der er 2 kommentarer og
1 løsning

Datoformat - VBA

Jeg skal prøve at løse en opgave, hvor man i et tekstfelt skal indtaste en dato. Nå man derefter trykker på 3 forskellige kommandoknapper, skal man kunne aflæse 3 forskellige datformater i et andet tekstfelt (eks. 12.01.2000, 12-1-2000 og 12 januar 2000. Mit problem er, at det tal jeg indtaster i tekstfeltet, bliver omdannet til en helt anden dato, end den jeg skrev oprindeligt. Hvordan løser jeg det?
Avatar billede xelor Nybegynder
23. maj 2005 - 20:15 #1
Nu er det ret svært at give en forklaring, når du ikke har fortalt hvilket tal der bliver opfattet forkert, men jeg giver et forsøg....:-)

Det er fordi Excel opfatter ikke 01012000 som en dato men som tallet 1012000, hvilket som dato svarer til datoen 1.012.000 dage efter d. 01/01 1900...

Du bliver nødt til at skrive kode, der kan omforme 01012000 til en dato...

Eks.:

function convertDate(vData as string) as date

    convertDate=dateserial(Mid(vData,5),Mid(vData,3,2),Left(vData,2))

end function

Funktionen her forudsætter en streng-variable, hvilket betyder at du skal formatere din input-celle som tekst for at bibeholde evt. foranstillede 0'er...
Samtidig skal du teste om strengen indholder mellem 6 og 8 tegn....og sørge for at det ikke allerede ER en dato der er angivet....eks. at der ikke er blevet indtastet
01-01-2000.

Jeg håber det tændte et lille lys...:-)

/Martin
Avatar billede xelor Nybegynder
23. maj 2005 - 20:19 #2
Forresten funktionen kan bruges ved at fange Worksheet_Change(Target as range...):

Sub Worksheet_Change(Target as Range...)

    If Target.Column=1 then 'Kan ikke lige huske om det er den rigtige syntaks..:-)
        If not IsDate(Target) and len(Target)=6 OR Len(Target)=8 then Target=converDate(target)
    End if

end sub
Avatar billede gnalling1 Nybegynder
23. maj 2005 - 20:24 #3
Jeg prøver det af. Det lyder som om, det kunne være den rigtige løsning. Tak for hjælpen :o)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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