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.

190717010355340337

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)

19essai.xlsm (20.05 Ko)

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

Rechercher des sujets similaires à "creer macro remplacer mot fichier texte"