excel vers ficher txt

M

Math

Guest
bonjour a tous

j'ai un petit soucis je desirerais ouvrir un fichier text et remplacer un mot dans le fichier txt par le contenu d'une cellule excel tout ca en vba bien sur

Merci d'avance a tous
 
B

Bill

Guest
Salut Math et le forum.

Une solution : (qui m'irait bien) Importer tout le fichier dans une feuille Excel, faire les modifs, et enfin replacer le tout dans le fichier TXT.

Me recontacter si PB pour faire ce bidouillage.
 
M

michel

Guest
bonsoir Math et Bill

j'avais préparé une réponse il y a une semaine avant de partir en vacances , sans avoir eu le temps de l'envoyer. je pensais qu'entre temps il y aurait plusieurs solutions proposées ...comme ce n'est pas le cas je me permets donc de relancer ce fil

je n'ai pas touvé de solution pour effectuer les modifications directement dans le fichier txt d'origine . je te proposes donc deux solutions

la premiere consiste à creer une copie contenant les modifications . Dans l'exemple la valeur de remplacement est récupérée dans la cellule A1
Sub ModifierFichierTexteV01()
Dim val As Long
Dim Cible As String
Open "D:\dossier\general\excel\test.txt" For Input As #1 'recup données fichier texte
val = FileLen("D:\dossier\general\excel\test.txt")
Cible = Input(val, 1)
Close 1
Cible = Application.Substitute(Cible, "AncienMot", Range("A1")) 'remplacement mot cible
Open "D:\dossier\general\excel\TestCopie.txt" For Append As #1 'creation nouveau fichier txt avec valeurs modifiees
Print #1, Cible
Close 1
End Sub


la deuxieme proposition est plus radicale , mais aussi plus risquée . qui consiste à recuperer les infos du fichier d'origine dans une variable , effectuer la modification des données , supprimer le ficher d'origine puis creer un nouveau fichier portant le meme nom , pour y inserer les données modifiées
Sub ModifierFichierTexteV02()
Dim val As Long
Dim Cible As String
Open "D:\dossier\general\excel\test.txt" For Input As #1 'recup données fichier texte
val = FileLen("D:\dossier\general\excel\test.txt")
Cible = Input(val, 1)
Close 1
Cible = Application.Substitute(Cible, "AncienMot",Range("A1")) 'remplacement mot cible
Kill "D:\dossier\general\excel\test.txt" 'suppression fichier d'origine
Open "D:\dossier\general\excel\test.txt" For Append As #1 'creation nouveau fichier txt avec valeurs modifiees
Print #1, Cible
Close 1
End Sub

dans les deux exemples , toutes les valeurs cibles identiques dans le fichier txt sont substituées

bonne soirée
michel
lapin4.gif
 

Discussions similaires

Réponses
10
Affichages
366

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch