Parcourir et remplacer du texte dans un fichier word avec Excel VBA

Bonjour à tous,

J'ai un template word avec plusieurs mots balise qui doivent être changés rapidement et j'ai beaucoup de documents word à traiter. Je pensais donc faire un tableur excel et traiter ces fichiers word avec une macro VBA.

J'ai fait ce code mais il ne fonctionne pas

Private Sub Create()

Dim MaFeuille As Worksheet
Dim file As String

    Set MaFeuille = Sheets("Information")

    file = ActiveWorkbook.Path & "\" & "nomfichier.docx"

    Set word_app = CreateObject("Word.Application")
        With word_app
            .Visible = True
            .WindowState = wdWindowStateMaximize
        End With

        Set word_fichier = word_app.documents.Open(file)
            word_app.Selection.Find.ClearFormatting
            word_app.Selection.Find.Replacement.ClearFormatting

        With word_app.Selection.Find
            .Text = "blabla"
            .Replacement.Text = "coucou"
        End With

End Sub

J'ai joint mon .xlsm et .docx

Merci d'avance pour votre aide :)

Pour ceux que ça pourrait intéresser j'ai écrit ça qui fonctionne pas mal :

Private Sub Create()

    Dim MaFeuille As Worksheet
    Set MaFeuille = Sheets("Information")

    Dim file As String
    file = ActiveWorkbook.Path & "\" & "nomfichier.docx"

    Dim word_app As Object
    Set word_app = CreateObject("Word.Application")
    With word_app
        .Visible = True
        .WindowState = 1 'value for wdWindowStateMaximize
    End With

    Dim word_fichier As Object
    Set word_fichier = word_app.Documents.Open(file)
    With word_fichier.Range.Find
        .Text = "blabla"
        .Replacement.Text = "coucou"
        .Execute Replace:=2 
    End With
End Sub

Mon nouveau problème c'est que j'ai des occurences dans le bas de page de mon fichier .docx que je n'arrive pas à modifier avec ce code.

Bonjour Super Neiluj

ton code remplace "blabla" par "coucou", donc si en fin de document tu as encore des "blabla" que tu veux remplacer, c'est bien d'avoir demandé un "ReplaceAll:2"

il faut peut être que tout le document soit sélectionné, et il ne faudrait pas que des "blabla" figurent en pied de page, car il s'agit d'un contenu qu'il faut sélectionner spécifiquement.

A tout hasard, ajoute la ligne Expand Unit:=wdStory :

    Dim word_fichier As Object
    Set word_fichier = word_app.Documents.Open(file)
word_fichier.Expand Unit:=wdStory
    With word_fichier.Range.Find
        .Text = "blabla"
        .Replacement.Text = "coucou"
        .Execute Replace:=2 
    End With

J'ai une erreur 438 avec ton code

Pour revenir en haut du document avant de lancer les remplacements

Selection.HomeKey Unit:=wdStory, Extend:=wdMove

Avec le document ce serait plus simple et de voir l'état avant exécution et voir le résultat après lancement d'une macro modifiée.

Rechercher des sujets similaires à "parcourir remplacer texte fichier word vba"