VBA - Rechercher un Bookmark sur Word depuis Excel

Bonsoir,

Lorsque j'effectue une recherche de bookmark dans Word, à partir d'Excel pour effectuer des modifications, j'ai un message d'erreur indiquant que ce bookmark n'existe pas.

Étrangement, au début ça fonctionnait, mais ça n'a plus fonctionné ensuite sans que je modifie le code. Les autres bookmarks sont parfois trouvés, parfois pas...

J'ai un document exemple avec un bookmark qui ne fonctionne pas. Est-ce que vous savez ce qui peut poser problème ?

J'ai testé différentes solutions trouvées ici et là sur internet.

        '.Bookmarks("TITRE").Select
        'wdapp.Bookmarks("TITRE").Select
        'objSelection.Goto What:=wdGoToBookmark, Name:="TITRE"
        'wdapp.Selection.Goto What:=wdGoToBookmark, Name:="TITRE"

        'Set wdappselect = wdapp.Selection
        '.Selection.Goto What:=wdGoToBookmark, Name:="TITRE"
        '.Bookmarks("TITRE").Range.Select

Sans succès.

Je joins les deux documents en question.

Concernant le code utilisé dans Excel, le voici :

Public Sub genDevis_Word()              'Merci X Cellus  @Excel Pratique (https://forum.excel-pratique.com/excel/vba-transfer-donnees-excel-vers-word-method-open-of-object-document-180569)
Dim a&, wdapp As Object
Set wdapp = CreateObject("Word.Application")

    With wdapp
        .Visible = True
        .Activate
'Ouvre le document modèle
        .Documents.Add ThisWorkbook.Path & "\" & "Test_find_word.docx"
'Ligne de code pour envoyer des données, des valeurs...

        .Selection.Goto What:=wdGoToBookmark, Name:="TITRE"
            .Selection.Text = Sheets("Data").Cells(2, 1)
            .Selection.Font.Bold = True
            .Selection.Font.Size = 12
            .Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
            .Selection.Font.Color = RGB(0, 51, 102)

    End With
End Sub

Bonne fin de soirée !

1test-find.xlsm (18.95 Ko)

Bonjour Le Drosophile,

Après avoir ciblé l'application en précisant le fichier à ouvrir.

Il faut ensuite cibler le document ouvert

' Ligne de code pour envoyer des données, des valeurs...
With .ActiveDocument
' Données de cellules
 .Bookmarks("Titre").Range.Text = Sheets("Data").Cells(2,1)
 .Bookmarks("etc... les autres bookmarks à renseigner par les cellules issues d'Excel
' puis terminer le bloc du document actif par un end With
End With

Normalement, il n'est pas nécessaire ensuite de formater le texte. Il suffit qu'avant le bookmark sur la feuille modèle docx, le formatage ait déjà été réalisé. Puis ce formatage soit remis à son standard habituel après le bookmark.

Bonsoir,

Merci encore. J'avais désactivé :

With .ActiveDocument

, sans faire attention.

Votre exemple m'a bien éclairé !

Rechercher des sujets similaires à "vba rechercher bookmark word"