Ouverture de fichiers textes
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 :
Code:
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 |
Alors, je pense savoir d'où viens le problème mais je ne sais pas comment corriger cela.
D'après moi, il s'agit de l'instruction
car dans la doc il est dit :
Citation:
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"
Avez-vous des solutions ou des idées pour résoudre mon problème ?
Merci !