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
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