Bonjour à tous,
Je viens vous faire part d'un problème que je rencontre avec ma macro VBA sous Excel.
En effet, je dois ouvrir un fichier texte puis importer son contenu dans Excel.
C'est exactement ce que l'on fait lorsque l'on fait fichier > Ouvrir > sélection du fichier texte.
Dans ce fichier texte, mes données sont séparées par des ";".
J'ai précisé dans le code que mon séparateur est un ";".
Jusque là tout va bien.
Le problème survient lorsque j'ai des virgules "," dans mon fichier texte.
En effet, lorsque une virgule est rencontrée, les données qui suivent vont à la ligne sur le tableau Excel, un peu comme si c'était une nouvelle entrée.
Par exemple, dans mon fichier texte j'ai : 45684;01;demande d'ouverture, opération de type 54;01
Lorsque la virgule est rencontrée, la suite va à la ligne, ce que je ne souhaite pas.
Je vous transmets mon code VBA pour mieux comprendre :
Alors, je pense savoir d'où viens le problème mais je ne sais pas comment corriger cela.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Sub FichierTexteCopie() Dim ligne As String, NoLigne As Long, NoCol As Long Dim Tableau, nomFich(), separateur Application.ScreenUpdating = False Sheets(1).Activate 'Ouverture de la boîte de dialogue nomFich() = Application.GetOpenFilename _ (, , , , True) ' J'ai plusieurs fichiers textes à traiter d'où la boucle For i = 1 To UBound(nomFich) '******************************** Sheets(i).Activate NoLigne = 0 Open nomFich(i) For Input As #FreeFile 'Lecture While Not EOF(1) Input #1, ligne separateur = ";" 'création d'un tableau des données de la ligne Tableau = Split(ligne, separateur) NoLigne = NoLigne + 1 'transfert des données dans la feuille Excel For NoCol = 0 To UBound(Tableau) Cells(NoLigne, NoCol + 1).Value = Tableau(NoCol) Next NoCol Wend Close #1 Next i Application.ScreenUpdating = True MsgBox "Opération terminée" End Sub
D'après moi, il s'agit de l'instruction
car dans la doc il est dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Input #1, ligne
Avez-vous des solutions ou des idées pour résoudre mon problème ?Input #filename, varlist
varlist est une "liste, délimitée par des virgules, de variables auxquelles sont attribuées les valeurs lues dans le fichier"
Merci !
Partager