Option Explicit
Dim ligne_debut As Integer, colonne_debut As Byte, ligne_enCours As Integer, colonne_enCours As Byte
Sub ChoixFichier()
Dim Fichier As Variant
Fichier = Application.GetOpenFilename("Tous les fichiers (*.csv),*.csv")
If Fichier = False Then Exit Sub
ligne_debut = 1: colonne_debut = 1
ligne_enCours = ligne_debut: colonne_enCours = colonne_debut
Feuil4.Cells.Clear 'feuille à adapter
Lecture (Fichier)
End Sub
Sub Lecture(Fichier As String)
Dim depart As Integer, position As Integer 'gerer position du ";" séparateur dans fichier csv
Dim texte As String, tampon As Variant
Open Fichier For Input As #1 'input acces au fichier
Do While Not EOF(1) 'EndOfFile: fin du fichier
Line Input #1, texte 'stocker ligne dans la variable texte
depart = 1: position = 1 'initialisation variables
Do While (position <> 0) 'parcourt des lignes pour trouver position du ";"
position = InStr(depart, texte, ";", 1)
If position = 0 Then 'si position=0, cela signifie fin de la ligne
tampon = Mid(texte, depart)
If IsNumeric(tampon) Then tampon = CDbl(tampon) 'conversion en nombre
If IsDate(tampon) Then tampon = CDate(tampon) 'conversion en date
Feuil2.Cells(ligne_enCours, colonne_enCours) = tampon
Exit Do 'on sort de la boucle car on est en fin de ligne
Else
tampon = Mid(texte, depart, position - depart) 'si position<>0 signifie que ";" trouver
If IsNumeric(tampon) Then tampon = CDbl(tampon) 'conversion en nombre
If IsDate(tampon) Then tampon = CDate(tampon) 'conversion en date
End If
Feuil2.Cells(ligne_enCours, colonne_enCours) = tampon
depart = position + 1
colonne_enCours = colonne_enCours + 1
Loop
colonne_enCours = colonne_debut
ligne_enCours = ligne_enCours + 1
Loop
Close #1 'fermeture du fichier pour décharger la mémoire
MsgBox "Import fichier CSV terminé!", vbInformation + vbOKOnly, "IMPORT CSV"
Feuil2.Activate 'feuille à adapter
End Sub