Renommer un signet dans Word 2010


13

J'utilise souvent des signets dans Word afin de créer des documents techniques avec des liens internes vers des citations et des informations couramment utilisées qui doivent être cohérentes tout au long du document. Vous pouvez les créer en sélectionnant le texte puis en allant dans le menu Insert-> Links-> Bookmarket en attribuant un nom, puis en allant dans Insert-> Links-> Citationset en sélectionnant le signet à insérer. Cela insérera ensuite le texte de ce signet ailleurs dans le document.

Comme exemple de la raison pour laquelle je fais cela: j'ai souvent une première page répertoriant l'état du document et ces informations sont ensuite répétées dans le pied de page, en utilisant un signet, je peux créer un lien vers ce texte, puis simplement insérer ce lien dans le pied de page et il se mettra à jour automatiquement chaque fois que je vais dans l'aperçu avant impression ou que je mets à jour tous les champs du document. De cette façon, je peux éviter de faire une recherche et de remplacer et je sais juste que le texte correct sera mis à jour aux bons endroits.

entrez la description de l'image ici

Disons maintenant que j'ai un signet que je viens de nommer, juste pour le mettre en place:
entrez la description de l'image ici

Il n'y a pas de clic droit pour renommer un signet et je ne trouve aucune propriété de document qui me permette de le modifier.

Je suis en mesure d'insérer une nouvelle marque en sélectionnant le même texte, puis supprimer l'ancien , mais vous obtenez ceci:
entrez la description de l'image ici

Vous devez ensuite cliquer avec le bouton droit sur le champ et le pointer vers le signet (désormais renommé).

Ce n'est pas complètement utilisable, surtout dans un grand document où ce signet est utilisé plusieurs fois.

J'ai parcouru Google et vu plusieurs scripts VBA sur le Web, comme dans cette question, mais comme ils créent effectivement un nouveau boomark et suppriment l'ancien, ils créent le même problème que ci-dessus et ne sont pas idéaux.

Existe-t-il un moyen plus simple ou plus efficace de renommer des signets dans des documents Word? Ou est-ce que j'utilise peut-être le Wrong Tool ™ pour ce travail?


Voulez-vous dire Word 2013, au lieu de 2010?
Grec - Proposition de la zone 51 du

@LePressentiment ma copie de Word est 2010, mais je ne vois pas pourquoi la réponse ci-dessous ne s'appliquerait pas à 2013 à moins qu'ils aient considérablement remanié la fonction de signet entre les versions. Je serais en fait surpris s'ils l'avaient fait.
Mokubai

@LePressentiment Voir ma réponse qui a été mise à jour par Mokubai.
DavidPostill

Réponses:


7

Existe-t-il un moyen plus simple ou plus efficace de renommer des signets dans des documents Word?

Il n'y a pas de fonction de renommage intégrée à Word. Il existe quelques options pour contourner ce manque:

  1. Utilisez un complément.

  2. Utilisez VBA.


Solution complémentaire

Utiliser le complément d'outil de signet

Il offre une interface utilisateur conviviale pour tout ce que la boîte de dialogue Signet standard fera et bien plus encore.

Bookmark Tool a été développé pour Word 2003. Il est entièrement fonctionnel avec Word 2007/2010.

...

Avec la section "Ajouter / Renommer un signet", l'ajout de signets est un jeu d'enfant.

  • Comme dans la boîte de dialogue standard, il vous suffit de sélectionner du texte, de taper un nom dans le champ et de cliquer sur "Ajouter".
  • Contrairement à la boîte de dialogue standard, l'outil de signet restreint l'entrée de clé aux caractères de nom de signet valides et vous avertit si vous essayez de créer un nom de signet en double.
  • Vous pouvez également utiliser cette section pour renommer un signet existant.

    entrez la description de l'image ici

Complément de l'outil de signet source


Solution VBA

Il n'y a pas de fonction de renommage. Vous devez supprimer l'ancien nom et marquer la plage avec un nouveau nom de signet. Voici un exemple de code VBA:

Sub ReNameBookMark()
    Dim doc As Word.Document
    Dim rng As Word.Range
    Dim bmk As Word.Bookmark
    Dim inpBookmark, repBookmark, fieldStr As String

    Set doc = Word.ActiveDocument

    inpBookmark = InputBox("Enter bookmark name that you want to be replaced:", "BookMark Replace")
    repBookmark = InputBox("Enter bookmark name replace with:", "BookMark Replace")

    Set rng = doc.Bookmarks(inpBookmark).Range
    Set bmk = doc.Bookmarks(inpBookmark)
    bmk.Delete
    rng.Bookmarks.Add (repBookmark)

    If doc.Fields.Count >= 1 Then
        For i = 1 To doc.Fields.Count
            fieldStr = doc.Fields(i).Code.Text
            If Left(fieldStr, 4) = " REF" Then
                doc.Fields(i).Code.Text = Replace(fieldStr, inpBookmark, repBookmark, , 1, vbTextCompare)
                doc.Fields(i).Update
            End If

            'MsgBox "Code = " & doc.Fields(i).Code & vbCr & "Result = " & doc.Fields(i).Result & vbCr
        Next i
    End If
End Sub

Source Modifiez le «nom» d'un signet et non le texte de celui - ci , avec une boucle supplémentaire pour parcourir les champs du document afin de modifier ceux qui pourraient faire référence au signet en cours de changement de nom.

Des précautions doivent être prises en utilisant ce script. Par exemple renommer les signets qui sont simplement nommés « REF » (ou une variante de cas supérieure ou inférieure de tels) se briser TOUTES les références de façon amusante et inattendue. Il s'agit uniquement d'un exemple et d'une correction approximative.

Si vous souhaitez renommer plusieurs signets par lots en une seule fois, consultez Existe - t-il un moyen plus simple ou plus efficace de renommer des signets dans des documents Word? qui comprend également un exemple de code VBA.


@Mokubai Il semble que vous puissiez le faire avec le complément (voir la réponse mise à jour)? Malheureusement, je n'ai pas de copie de Word pour tester avec ...
DavidPostill

Je vais tester l'addin le matin quand je reviendrai sur mon PC. C'est probablement bien pour la maison, mais au travail, je ne pense pas pouvoir l'utiliser car notre service informatique peut se méfier un peu de ce genre de choses. Je vais essayer les deux méthodes et voir si je peux améliorer votre script VBA pour faire la recherche et le remplacer. Si j'arrive quelque part et que cela vous convient, j'aimerais le modifier dans votre réponse.
Mokubai

@LePressentiment Au cas où cela aiderait ce que vous voulez, j'ai ajouté quelques fonctionnalités au script VBA ci-dessus pour vous donner une zone de saisie pour les noms actuels et nouveaux, et j'ai fait une recherche sale et remplacez-les dans les champs qui font référence à ces signets. Ce n'est pas parfait, mais c'est mieux que rien et conviendra plus que ce que je dois faire au travail.
Mokubai

Le complément d'outil de signet rompt les références aux signets après les avoir renommés (pour moi dans Word 365 sur Windows).
filups21

1

J'ai eu ce même problème et suis tombé sur ce travail autour / solution.

Pour le texte que vous souhaitez référencer, un titre dans mon cas, configurez un titre de propriété de document comme suit:

Insert tabQuick PartsDocument PropertyTitle

Cela ajoute ensuite une zone modifiable pour le texte dans lequel vous pouvez taper votre titre.

Ensuite, pour le référencer, vous pouvez simplement aller à Insert tabQuick PartsFieldTitle, ou faire comme ce que j'ai fait accidentellement - j'avais une référence configurée et quand je l'ai mise à jour avec F9elle, j'ai ajouté la boîte de titre qu'elle faisait référence.

C'est assez cool car lorsque vous mettez à jour la boîte de titre, les références se mettent à jour automatiquement sans appuyer sur F9!!! C'est génial lorsque vous avez la référence dans un en-tête car la fonction Ctrl+ Ane capture pas ce qui est dans l'en-tête / pied de page et vous devrez généralement double-cliquer à l'intérieur de l'en-tête / pied de page pour sélectionner, et appuyer sur F9pour mettre à jour.

Donc, au lieu de créer une référence de titre comme indiqué ci-dessus, procédez comme suit:

  • Après avoir configuré la zone de titre, créez un signet de la zone de titre:

    • Sélectionnez la zone de titre (assurez-vous de cliquer sur l'onglet titre en haut pour sélectionner toute la zone)
    • InsertBookmark→ (nommez-le Project_title) →add
  • Ajoutez ensuite la référence comme ceci:

    • Insert tabQuick PartsFieldRef(et sélectionnez Project_titleou quel que soit votre nom)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.