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 Subbonjour 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 Submerci bcp Bart pour ta réponse et réactivité