Bonjour,
Ce problème a été mainte fois abordé, mais aucune des solutions listées ne m'a apporté la solution...
J'utilise le code suivant pour importer un fichier CSV et copier sont contenu dans une feuille
voici le fichier d'entrée:
Date;01/06/2010
Date;10/06/2010
Date;08/06/2010
Date;30/06/2010
Date;21/06/2010
Date;13/06/2010
Date;02/03/2010
Date;04/03/2010
Date;11/03/2010
Date;15/03/2010
Date;23/03/2010
Date;29/03/2010
voici le code VB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 'On créé un onglet "temp" dans lequel on importera le fichier de log
ActiveWorkbook.Worksheets.Add After:=Worksheets("Index")
ActiveSheet.Name = "temp"
Const Sep = ";"
Dim Tablo() As String
'On importe le fichier de log au format CSV
Application.ScreenUpdating = False
cpt = 0
Open fichier$ For Input Access Read As #1
Do Until EOF(1)
Input #1, Recup
Tablo = Split(Recup, Sep)
For i = 0 To UBound(Tablo)
Worksheets("temp").Range("A1").Offset(cpt, i).Value = Tablo(i)
Next i
cpt = cpt + 1
Loop
Close #1 |
et voici le résultat
Date 06/01/2010
Date 06/10/2010
Date 06/08/2010
Date 30/06/2010
Date 21/06/2010
Date 13/06/2010
Date 03/02/2010
Date 03/04/2010
Date 03/11/2010
Date 15/03/2010
Date 23/03/2010
Date 29/03/2010
Dès que le numéro de jour est inférieur à 13, l'inversion se produit, sinon, la chaine semble être traitée comme une simple chaine de texte.
l'ajout de .NumberFormat = "dd/mm/yyyy" ne change absolument rien...
Partager