Microsoft 365 Format dates incorrect

Ragnarok001

XLDnaute Nouveau
Bonjour le Forum,

j'ai un souci de format de dates, je me suis fait une petite macro pour formater un CSV correctement dans Excel, lorsque je fais la manip via Text to columns tout se passe correctement mais quand j'utilise ensuite le bouton pour le faire automatiquement le format des dates est inversé ! vous pouvez voir les données d'origine dans le premier onglet et le résultat sur les dates dans le 2eme onglet

Si vous voyez ce qui cloche ça m'intéresse car je ne saisis pas !

merci bp!!
 

Pièces jointes

  • Format Dates.xlsm
    18.4 KB · Affichages: 9
Solution
les quantité doivent s'accumler ou se remplacer
si tu remplace a chaque fois
VB:
Sub testfcsv()
    With Sheet2
        tbl = .[A1].Resize(.UsedRange.Rows.Count, 2).Value
        For i = 1 To UBound(tbl)
            l = Split(tbl(i, 1), ",")
            tbl(i, 1) = CDate(l(0)): tbl(i, 2) = CDate(l(1))
        Next
        With Sheet1
            .[c:d].ClearContents
            .[C3:D3].Resize(UBound(tbl)) = tbl
        End With
    End With
End Sub
si tu accumule
Code:
Sub testfcsv()
    With Sheet2
        tbl = .[A1].Resize(.UsedRange.Rows.Count, 2).Value
        For i = 1 To UBound(tbl)
            l = Split(tbl(i, 1), ",")
            tbl(i, 1) = CDate(l(0)): tbl(i, 2) = CDate(l(1))
        Next
        With Sheet1
            dl =...

vgendron

XLDnaute Barbatruc
Sinon par PowerQuery, comme suggéré plus haut

Ci dessous détail de la requete dans laquelle il faut juste modifier le chemin d'accès du fichier csv (1ere ligne Source=....
VB:
let
    Source = Csv.Document(File.Contents("C:\Users\vince\Downloads\Format Dates.csv"),[Delimiter=",", Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"Fractionner la colonne par délimiteur" = Table.SplitColumn(Source, "Column1", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
    #"Type modifié" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur",{{"Column1.1", type datetime}, {"Column1.2", type text}, {"Column2", type datetime}}),
    #"Fractionner la colonne par délimiteur1" = Table.SplitColumn(Table.TransformColumnTypes(#"Type modifié", {{"Column2", type text}}, "fr-FR"), "Column2", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column2.1", "Column2.2"}),
    #"Type modifié1" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur1",{{"Column2.1", type date}, {"Column2.2", type time}})
in
    #"Type modifié1"

pour mettre à jour tous les jours
dans la feuille 1
clic droit sur la table / actualiser
 

Pièces jointes

  • Format Dates.xlsm
    25.7 KB · Affichages: 1

Ragnarok001

XLDnaute Nouveau
Sinon par PowerQuery, comme suggéré plus haut

Ci dessous détail de la requete dans laquelle il faut juste modifier le chemin d'accès du fichier csv (1ere ligne Source=....
VB:
let
    Source = Csv.Document(File.Contents("C:\Users\vince\Downloads\Format Dates.csv"),[Delimiter=",", Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"Fractionner la colonne par délimiteur" = Table.SplitColumn(Source, "Column1", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
    #"Type modifié" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur",{{"Column1.1", type datetime}, {"Column1.2", type text}, {"Column2", type datetime}}),
    #"Fractionner la colonne par délimiteur1" = Table.SplitColumn(Table.TransformColumnTypes(#"Type modifié", {{"Column2", type text}}, "fr-FR"), "Column2", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column2.1", "Column2.2"}),
    #"Type modifié1" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur1",{{"Column2.1", type date}, {"Column2.2", type time}})
in
    #"Type modifié1"

pour mettre à jour tous les jours
dans la feuille 1
clic droit sur la table / actualiser
bonjour et merci Vgendron
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 898
Membres
101 834
dernier inscrit
Jeremy06510