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
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager