Macro pour parser un fichier txt et remplacer

Signaler
Messages postés
8
Date d'inscription
lundi 26 septembre 2005
Statut
Membre
Dernière intervention
20 janvier 2010
-
Messages postés
8
Date d'inscription
lundi 26 septembre 2005
Statut
Membre
Dernière intervention
20 janvier 2010
-
Bonjour à tous,

J'ai un fichier xls qui contient plusieurs classeurs qui contient plusieurs données.
j'ai crée des macros pour trouver le delta entre les données de ces classeurs et les affichées dans un fichier txt.

Maintenant il me reste de parser chaque ligne de ce fichier txt qui sous la forme :
x;y;z;w
......
.....
et remplacer une commande qui est sous la forme:
commande : text1="a", text1="b", text1="c", text1="d"

En gros :

je doits parcer le ficher txt et remplacer les valeurs a,b,c,d de la commande par les valeurs x,y,z,w et ceci pour chaque ligne du fichier txt..

Avez une idée svp?..

Merci d'avance..

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
Ton format de fichier ressemble à la structure d'un fichier CSV.
Inspire toi des multiples codes exemples en cherchant "VBA CSV" dans le moteur de recherche du site.
Si tu veux commencer, il faut :
- Ouvrir le fichier : FreeFile, Open
- Faire une boucle de lecture : Do While Not EOF(x)
- Lire une ligne : Line Imput #
- Faire un Split de la ligne avec ';' pour bornes. Tu seras embêté s'il existe des ';' à l'intérieur des valeurs x, y, z ou w
- Transférer les éléments du tableau ainsi créé dans tes 'Text1'
- Rebouclage : Loop
- Fermeture du fichier : Close #

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
8
Date d'inscription
lundi 26 septembre 2005
Statut
Membre
Dernière intervention
20 janvier 2010

OK merci pour votre réponse..

J'ai essayé ce code là mais sans issu:(disons que je suis pas un pro vb)

Sub Lire_file_TXT()
Dim Fichier As String
Dim F As Integer, i As Integer
Dim Ligne As String

Fichier = "C:/file.txt"

F = FreeFile
'Lecture des lignes
Open Fichier For Input As #F
While Not EOF(F)
Line Input #F, Ligne
'découpe la chaine en fonction des espaces " "
'le résultat de la fonction Split est stocké dans un tableau
Tableau = Split(Ligne, ";")

????????????????????????
puis modification de l'autre texte
??????????
commenet faire????
******************************
'boucle sur le tableau pour visualiser le résultat
For i = 0 To UBound(Tableau)
Print #F, Tableau(i)
Next i
End Sub

Merci pour ta réponse...