Créer une macro pour remplacer un mot dans un fichier texte
Bonjour
Je me suis fais un tableau excel sur deux colonnes
Je souhaiterais mettre en place une macro qui me permet dans le fichier texte de remplacer les mots présent dans la colonne C par les mots présent dans la colonne D.
J'ai trouvé ceci sur le net que j'ai voulu adapter pour mon cas mais cela ne fonctionne pas
Private Sub Command1_Click()
Dim Valeur As Long
Dim Cible As String, Fichier As String
Dim Ancien() As Variant, Nouveau As Variant
Dim i As Integer
Fichier = "C1"
Ancien = Array("C6", "C7", "C8")
Nouveau = Array("D6", "D7", "D8")
Open Fichier For Input As #1
'recupère les données du fichier texte
Valeur = FileLen(Fichier)
Cible = Input(Valeur, 1)
Close 1
'Remplacement des chaînes de caractères
For i = 0 To UBound(Ancien())
Cible = Replace(Cible, Ancien(i), Nouveau(i))
Next i
'suppression fichier d'origine
Kill Fichier
'Création nouveau fichier txt avec valeurs modifiees
Open Fichier For Append As #1
Print #1, Cible
Close 1
MsgBox "Terminé"
End Sub
Avez-vous une solution?
(les mots présent dans les colonnes C et D sont le résultat de calcul je ne sais pas si c'est ça qui peut me gêner)
Je viens de rajouter le fichier excel avec la macro dans mon premier message
J'ai réussi à avancer mais je n'arrive toujours pas à comprendre un point
Voici la MaJ
Sub Rename2()
'
' Rename Macro
Dim Valeur As Long
Dim Cible As String, Fichier As String
Dim Ancien() As Variant
Dim Nouveau() As Variant
Dim i As Integer
'Fichier = "C:\Users\Nolin\Videos\Desktop\Essai\Nouveau dossier\t_sra0_uhe3p1.dat"
Fichier = Range("E2").Value
Ancien = Array(Range("E7").Value, Range("E8").Value, Range("E9").Value)
Nouveau = Array(Range("D7").Value, Range("D8").Value, Range("D9").Value)
Open Fichier For Input As #1
'recupère les données du fichier texte
Valeur = FileLen(Fichier)
Cible = Input(Valeur, 1)
Close 1
'Remplacement des chaînes de caractères
For i = 0 To UBound(Ancien())
Cible = Replace(Cible, Ancien(i), Nouveau(i))
Next i
'suppression fichier d'origine
Kill Fichier
'Création nouveau fichier txt avec valeurs modifiees
Open Fichier For Append As #1
Print #1, Cible
Close 1
MsgBox "Terminé"
' Touche de raccourci du clavier: Ctrl+r
'
End Sub
Mais actuellement mon souci c'est que les valeurs "Ancien" ne fonctionnent pas (ça fonctionne si j'écris une valeur sans passer par un calcul)
Explication
Actuellement dans E7 j'ai
=SI(B7=0;"";SUBSTITUE(STXT(SUBSTITUE(B7;",";" ");TROUVE("zzz";SUBSTITUE(SUBSTITUE(B7;",";" ");" ";"zzz";NBCAR(SUBSTITUE(B7;",";" "))-NBCAR(SUBSTITUE(SUBSTITUE(B7;",";" ");" ";""))-8))+1;NBCAR(SUBSTITUE(B7;",";" ")));STXT(STXT(SUBSTITUE(B7;",";" ");TROUVE("zzz";SUBSTITUE(SUBSTITUE(B7;",";" ");" ";"zzz";NBCAR(SUBSTITUE(B7;",";" "))-NBCAR(SUBSTITUE(SUBSTITUE(B7;",";" ");" ";""))-8))+1;NBCAR(SUBSTITUE(B7;",";" ")));TROUVE("zzz";SUBSTITUE(STXT(SUBSTITUE(B7;",";" ");TROUVE("zzz";SUBSTITUE(SUBSTITUE(B7;",";" ");" ";"zzz";NBCAR(SUBSTITUE(B7;",";" "))-NBCAR(SUBSTITUE(SUBSTITUE(B7;",";" ");" ";""))-8))+1;NBCAR(SUBSTITUE(B7;",";" ")));" ";"zzz";NBCAR(STXT(SUBSTITUE(B7;",";" ");TROUVE("zzz";SUBSTITUE(SUBSTITUE(B7;",";" ");" ";"zzz";NBCAR(SUBSTITUE(B7;",";" "))-NBCAR(SUBSTITUE(SUBSTITUE(B7;",";" ");" ";""))-8))+1;NBCAR(SUBSTITUE(B7;",";" "))))-NBCAR(SUBSTITUE(STXT(SUBSTITUE(B7;",";" ");TROUVE("zzz";SUBSTITUE(SUBSTITUE(B7;",";" ");" ";"zzz";NBCAR(SUBSTITUE(B7;",";" "))-NBCAR(SUBSTITUE(SUBSTITUE(B7;",";" ");" ";""))-8))+1;NBCAR(SUBSTITUE(B7;",";" ")));" ";""))))-25;NBCAR(STXT(SUBSTITUE(B7;",";" ");TROUVE("zzz";SUBSTITUE(SUBSTITUE(B7;",";" ");" ";"zzz";NBCAR(SUBSTITUE(B7;",";" "))-NBCAR(SUBSTITUE(SUBSTITUE(B7;",";" ");" ";""))-8))+1;NBCAR(SUBSTITUE(B7;",";" ")))));""))
La macro ne prend pas la valeur du résultat
et si dans E7 je met la valeur en direct c'est bon
Quelqu'un peut m'aider?
C'est bon j'ai résolu mon problème il y avait un espace qui se baladé
On peut verrouiller le sujet