christopher21 Juniormester
04. april 2018 - 15:19 Der er 14 kommentarer

Ændre datoformat til dd-mm-yyyy

Hej,
Jeg har en masse datoer i kolonne D, som jeg ønsker bliver ændret til formatet "DD-MM-YYYY"
Hvilken kode kan jeg bruge i VBA til at erstatte de forkert formarterede datoer?
Tak på forhånd!
christopher21 Juniormester
04. april 2018 - 15:27 #1
Det står lige nu i formatet yy-mm-dd og det er det jeg ønsker at ændre
claes57 Ekspert
04. april 2018 - 15:37 #2
har du prøvet bare at klik-markere kolonnen, og vælge formatér celler / dato og pile ned i listen, til du kommer til det ønskede layout.
christopher21 Juniormester
04. april 2018 - 15:41 #3
Det er en opgave jeg har fået, så jeg skal gøre det gennem VBA
claes57 Ekspert
04. april 2018 - 16:14 #4
Dan Elgaard Ekspert
04. april 2018 - 16:26 #5
Range("D:D").NumberFormat = "dd.mm.yyyy"
Dan Elgaard Ekspert
04. april 2018 - 16:32 #6
Hov...
Jeg ser nu, at du vil have bindestreger:

Range("D:D").NumberFormat = "dd-mm-yyyy"
christopher21 Juniormester
04. april 2018 - 16:49 #7
Tak for hjælpen! Koden virker desværre ikke for mig Dan, der sker ikke noget i excel :/
christopher21 Juniormester
04. april 2018 - 17:39 #8
Datoen står som tekst, skal jeg lige tilføje
Dan Elgaard Ekspert
04. april 2018 - 19:25 #9
Så kunne det jo tyde på, at det ikke er en dato, der står i cellerne, men måske en tekst, der ligner en dato...

Så er du nødt til, at lave et loop, der gennemløber alle cellerne i kolonnen, og laver dem om til datoer...
Dan Elgaard Ekspert
04. april 2018 - 19:28 #10
Dim Counter As Long
Dim LastRow As Long
LastRow = Range("D" & Rows.Count).End(xlUp).Row

For Counter = 1 To LastRow
    Range("D" & Counter).Value = DateSeriel(Right$(Range("D" & Counter).Value,2),Mid$(Range("D" & Counter).Value,4,2),Left$(Range("D" & Counter).Value,2))
Next

Ikke testet - lavet sådan lige ud af hovedet - ret selv syntak og stavefejl - men, nu har du ideen :-)
Dan Elgaard Ekspert
04. april 2018 - 19:30 #11
HOV !!!

Jeg fik vist byttet rundt på Left$() og Right$() i skyndingen - ret det lige selv :-)
christopher21 Juniormester
04. april 2018 - 19:55 #12
Får desværre en  Run-time error "13", når jeg skriver koden :/
Dan Elgaard Ekspert
04. april 2018 - 20:26 #13
Tja, nu er du forhåbenlig VBA programør, siden du er ved, at skrive et VBA program?!?

Men, den fejl kommer, naturligvis, hvis der er celler i kolonne D, der ikke opfylder det format, som du selv har givet - det kunne være enten tomme celler, eller at der er en overskriftscelle i kolonnen, eller noget tredje...

Du skal selvfølgelig selv tilrette koden, så den tager hensyn til celler, der ikke overholder det format, du gav - jeg kan jo ikke vide, om det forholder sig sådan, da jeg ikke har dit regneark - jeg har bare taget alle celler i kolonnen, der ligger indenfor 'UsedRange', men indholdet af cellerne kan jeg kun antage er, hvad du selv har angivet...
christopher21 Juniormester
04. april 2018 - 20:46 #14
Jeg er studerende, så jeg er stadig ved at lære VBA at kende :)
Jeg har prøvet med følgende kode
Sub YYMMDD()
    Dim c As Range
 
    For Each c In Range("D2:D" & Cells(Rows.Count, "D").End(xlUp).Row)
        c.Value = DateSerial(Left$(c.Value, 2), Mid$(c.Value, 4, 2), Right$(c.Value, 2))
        c.NumberFormat = "dd-mm-yyyy"
    Next
   
End Sub

Resultatet i excel ender med at blive m-d-yyyy og ikke dd-mm-yyyy :(

Og jeg kan kun eksekvere den én gang anden gang får jeg en run time error.
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

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





Premium
Datatilsynet vil ikke forholde sig til danske skolers brug af Microsoft 365: "Det er lidt ud over det normale pensum"
Interview: Datatilsynet vil ikke komme med en klar anbefaling til, om danske skoler kan bruge udenlandske cloud-løsninger, før man har set konkrete eksempler. “Det er helt bestemt et område, der har vores bevågenhed og hele tiden bliver vurderet.”
Computerworld
Huaweis topchef: Vores nye styresystem er betydelig hurtigere end Android
Huawei er svært tilfreds med selskabets nye operativsystem, der hedder Hongmeng. Systemet er meget hurtigere end Android, lover topchefen, og Huawei vil udbrede det til en masse andre enheder.
CIO
The Digital Edge: Ørsteds CIO Michael Biermann styrker it-afdelingen: "Vi får en masse nye kollegaer med kompetencer, som vi overhovedet ikke har set før. Det er virkeligt spændende"
The Digital Edge: Et styrket fokus på it-arkitektur, agile og værktøjer som design thinking har på få år sat fart på den 780 personer store it-afdeling hos energikoncernen Ørsted. Hør hele historien om transformationen og hvad fremtiden byder direkte fra CIO Michael Biermann.
Job & Karriere
Nye danskkrav får ansøgertallet til at falde på IT-Universitetet
Et nyt sprogkrav, der skal begrænse antallet af internationale studerende, har betydet, at 16 procent færre har søgt om at blive optaget på en bacheloruddannelse på IT-Universitetet i København.
White paper
Mobility - her er de aktuelle udfordringer
Hvad med sikkerheden? Mobility-bølgen fejer igennem danske virksomheder, og der er masser af muligheder og faldgruber. Sikkerheden halter, men det kan der gøres noget ved. Produceret af Computerworld.dk i oktober 2014.