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
En skærmrevolution er på vej: Her er alt du bør vide om fremtidens mini-LED og micro-LED-skærme
En mindre skærmrevolution er nu under opsejling. Tre nye skærmteknologier kommer med hver deres løfte om vild kontrast, flottere farver og modulære egenskaber.
Computerworld
Overblik: Så meget betaler danske virksomheder i løn til it-medarbejderne - se listerne her
Overblik: Der er meget stor forskel på løn-niveauet for it-medarbejderne i de danske virksomheder. Få overblikket over, hvor lønnen er højest og lavest her.
CIO
The Digital Edge: Claus H. Andersen står i spidsen for at gøre dit indkøb nemmere i Salling Groups 1.500 butikker
Podcast: Salling Groups digitale chef, Claus H. Andersen, er på en digital mission: Det skal være nemmere at handle, nemmere at være kunde og nemmere være forbruger - i alle kædens 1.500 butikker. Hør hvordan den digitale chef arbejder.
Job & Karriere
"Vi var fem mennesker, der fik 400 millioner kroner, et lokale på 12 m2 og et stempel fra Undervisningsministeriet. Det kalder jeg mit første start-up. Det blev til IT-Universitetet. "
"Da jeg var færdig med PhD´en så var vi fem mennesker, der fik 400 millioner kroner, et lokale på 12 m2 og et stempel fra Undervisningsministeriet. Så skulle vi bare have et nyt universitet op og køre på seks måneder. Det kalder jeg mit første start-up. Det blev til IT-Universitetet."
White paper
Markedsanalyse: Sådan forbedrer EDI din samhandel
I en markedsundersøgelse fra august 2018 blev 300 retailers og producenter spurgt til, hvordan EDI og supply chain-teknologi hjælper dem med at forbedre deres samhandel. Det er ikke nogen hemmelighed, at konkurrenceforholdene er blevet skærpet i det seneste årti, og specielt priserne er udsat for øget pres. Dette betyder, at virksomheder hele tiden skal arbejde for at implementere mere effektive handelsprocesser. Heldigvis er der stadig forretningsområder, som er nemme at strømline ved hjælp af intelligente outsourcede løsninger. Ét af disse er den elektroniske udveksling af ordrer og fakturaer (EDI). I dette whitepaper kigger vi nærmere på de fem vigtigste områder, hvor EDI ifølge de 300 respondenter spiller en stor rolle i at forbedre virksomhedernes samhandel.