• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Datum van jjjj-mm-dd naar dd-mm-jj

Status
Niet open voor verdere reacties.

peter59

Terugkerende gebruiker
Lid geworden
21 mei 2007
Berichten
1.733
Besturingssysteem
Windows 11
Office versie
Office versie 365
Hallo,

Ik ben aan het stoeien met een code van Edmoor.
Deze is geplaatst in juli 2015 n.a.v. van een soort gelijke vraag.
Code:
Sub AdateToEdate()
    Dim sDate As String
    Dim LastRow As Long
    
    Dim i As Long
    With ActiveSheet
        LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
    End With
    
    For i = 1 To LastRow
        If IsDate(Cells(i, 2)) Then
            sDate = Format(Cells(i, 2), "DD-MM-YY")
        End If
    Next
End Sub
Het lukt mij helaas niet om deze aan te passen naar mijn bestand.
Zie bijlage voor een "uitgekleed" bestandje.

Wat zie ik over het hoofd??

Mvg
Peter
 

Bijlagen

  • Wijzigen datum.xlsb
    17,8 KB · Weergaven: 40
Om te beginnen wil je met jouw code kolom 2 aanpassen, wat dus Kolom B is.

Code:
Sub AdateToEdate()

    Dim LastRow As Long
    
    Dim i As Long
    With ActiveSheet
        LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
    End With
    
    For i = 2 To LastRow
        If IsDate(Cells(i, [COLOR="#FF0000"]6[/COLOR])) Then
            Cells(i,[COLOR="#FF0000"] 6[/COLOR]) = CDate(Format(Cells(i,[COLOR="#FF0000"] 6[/COLOR]).Value, "DD-MM-YY"))
        End If
    Next
End Sub

of zo werkt het bij mij ook:

Code:
Sub AdateToEdate()

    Dim LastRow As Long
    
    Dim i As Long
    With ActiveSheet
        LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
    End With
    
    For i = 2 To LastRow
        If IsDate(Cells(i, 6)) Then
            Cells(i, 6) = CDate(Cells(i, 6))
        End If
    Next
End Sub

of :

Code:
Sub AdateToEdate()
    For i = 2 To Cells(Rows.Count, "F").End(xlUp).Row
        If IsDate(Cells(i, 6)) Then Cells(i, 6) = CDate(Cells(i, 6))
    Next
End Sub
 
Laatst bewerkt:
In kolom F staan geen data, maar teksten.

Code:
Sub M_snb()
    Columns(6).NumberFormat = "dd-mm-yy"
    Columns(6).Value = Columns(6).Value
End Sub

Het is verstandig je te conformeren aan de ISO schrijfwijze voor datums: yyyy-mm-dd.
Die kun je tenminste nog correct sorteren.
 
Laatst bewerkt:
Er even data (datums) van maken kan ook

Code:
Sub VenA()
  Columns(6).TextToColumns [F1], , , , , , , Array(1, 5)
End Sub
 
Hallo beste helpers

@SjonR
Zo zie je maar weer waar ik op stuk ben gelopen. Wel kolomletter aangepast maar niet het kolomnummer.
Jou code werkt voor een gedeelte, goed. Zie bijlage.
De celeigenschappen staan nu op "Datum". Wordt deze in het bestandje, celeigenschappen, aangepast naar "dd-mm-jj", dan is het geheel goed.

@Snb
In kolom F staan idd teksten.
Code van jou werkt perfect. Zie bijlage.
De celeigenschappen staan d.m.v. deze code op, aangepast, "dd-mm-jj".

@VenA
Jou code werkt ook perfect.
Heb je misschien nog een beetje uitleg wat deze code doet?
Code:
Sub VenA()
  Columns(6).TextToColumns [F1], , , , , , , Array(1, 5)
End Sub

Voor nu wil ik jullie al heel hartelijk danken.

Mvg
Peter
 

Bijlagen

  • SjonR Wijzigen datum.xlsb
    18,6 KB · Weergaven: 16
  • Snb Wijzigen datum.xlsb
    16,4 KB · Weergaven: 15
  • VenA Wijzigen datum.xlsb
    16,3 KB · Weergaven: 21
De code doet hetzelfde als de werkbladfunctie Text to columns.
 
Oké VenA

Dank voor je antwoord.

Mvg
Peter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan