Dates inversées qd je convertis via VBA

Bonjour et très belle année à vous,

j'ai un petit pb de date qd je convertis un fichier séparé par des virgules en colonne. Certaines dates du fichiers s'inversent jours et mois. (ligne 2, 3, 4 et 7 ds le fichier joint).

ci-dessous le code que j'ai intégré et ici un petit extrait du fichier sur lequel je travail qui fait 200000 lignes dans son intégralité.

si vous pouviez m'aider sur ce point, je suis embêter car impossible de trouver la solution et je ne comprends pkoi certaines lignes sont ok et d'autres non.

merci à vous pour les réponses que vous pourriez m'apporter

Sub Bouton4_Cliquer()

' Séparateur virgule

    Sheets("Feuil1").Activate
    Columns("a:a").Select
    Selection.Copy
    Sheets("Feuil2").Activate
    Columns("A:A").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
    Columns("A:F").Select
    Columns("A:F").EntireColumn.AutoFit
    Range("A1").Select

End Sub

bonjour Xavier22, il faut utiliser le "4" dans le "Fieldinfo" pour des colonnes avec des dates du type "JMA". Comme Excel est d'origine americaine, là ils utilisent l'inverse et donc "12/4/2022" est compris comme le 4 décembre (faux) et "13/4/2022" reste "13/4/2022" en texte (donc faux aussi), parce qu'il n'y a que 12 mois par an.

Sub Bouton4_Cliquer()

     ' Séparateur virgule

     With Sheets("Feuil2")
          .UsedRange.ClearContents           'vider cette feuille
          Sheets("Feuil1").Columns("A").Copy .Range("A1")     'copier& coller colonne A
          .UsedRange.Resize(, 1).TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
                                               Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 4), Array(4, 4)), TrailingMinusNumbers:=True
          .UsedRange.EntireColumn.AutoFit
     End With
End Sub

merci bcp Bart pour ta réponse et réactivité

Rechercher des sujets similaires à "dates inversees convertis via vba"