Exemple ...
Sub test()
Dim donnees As Variant
donnees = Application.GetOpenFilename("Text Files (*.csv), *.csv")
If donnees = False Then Exit Sub
Cells.Clear
Range("A1").Select
Extraction donnees, ","
End Sub
Sub Extraction(Fichier As Variant, Separateur As Variant)
Dim Tableau() As String
Dim Resultat
Open Fichier For Input As #1
ligne = 1
Do While Not EOF(1)
Line Input #1, ContenuLigne
Tableau = Split(ContenuLigne, Separateur)
nItems = UBound(Tableau) + 1
If ligne = 1 Then ReDim Resultat(1 To nItems, 1 To 1)
If ligne > 1 Then ReDim Preserve Resultat(1 To nItems, 1 To ligne) ' Preserve ne permet de redimensionner que la dernière dimension d'un tableau avec conservation des données
For i = 0 To UBound(Tableau)
If i = 0 And j > 1 Then 'date
Resultat(i + 1, ligne) = CDbl(DateSerial("20" & Mid(CStr(Tableau(i)), 7, 2), Mid(CStr(Tableau(i)), 4, 2), Mid(CStr(Tableau(i)), 1, 2)))
Else
Resultat(i + 1, ligne) = Tableau(i)
End If
Next i
ligne = ligne + 1
Loop
Close #1
Resultat = Application.Transpose(Resultat)
Selection.Resize(UBound(Resultat), UBound(Resultat, 2)) = Resultat
End Sub
Je pense qu'intervenir après chargement par excel tout seul n'est pas possible, car on ne pourra plus savoir si la date a les jour/mois inversés ou non ! Il faut doc le faire au cours du chargement.