Boucle while until EOF et .csv : problème
Bonjour,
Comme l'indique le titre du sujet, j'ai un soucis avec la fonction EOF sur les fichiers csv.
Voici le besoin : je dois, à partir d'une macro excel, pouvoir exploiter des CDR (Call Detail Record). Ma macro sert donc à les récuperer depuis le serveur et ensuite les ouvrir puis faire le tri.
Je bloque entre l'étape d'ouverture du fichier et remplissage.
Pour faire ce remplissage (je n'ai pas encore fait un quelconque tri, je cherche juste à remplir une feuille excel avec le fichier csv), je me sers d'une boucle qui bouclera tant que je ne suis pas en fin de fichier.
Problème : cette boucle s’arrête dès la fin de la première ligne.
Voici la fonction assurant l'ouverture du fichier et son remplissage
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Private Function fillSheet(path As String)
Dim ws As Worksheet
path = Mid(path, 2, Len(path) - 2) 'Je retire les " en debut et fin de chaine
Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = "Test"
Open path For Input As #1
row_number = 0
Do Until EOF(1)
Line Input #1, linefromfile
lineitems = Split(linefromfile, ";")
ActiveCell.Offset(row_number, 0).Value = Mid(lineitems(1), 2, Len(lineitems(1)) - 2) 'Je retire les " en debut et fin de chaine
ActiveCell.Offset(row_number, 1).Value = Mid(lineitems(1), 2, Len(lineitems(1)) - 2) 'Je retire les " en debut et fin de chaine
ActiveCell.Offset(row_number, 2).Value = Mid(lineitems(2), 2, Len(lineitems(2)) - 2) 'Je retire les " en debut et fin de chaine
row_number = row_number + 1
Loop
Close #1
End Function |
Merci d'avance.