7 votes

Comment ajouter des styles personnalisés au volet de navigation ou les modifier avec VBA

J'ai un document Word2010 qui a été créé par un outil de Axure.

  • Chaque en-tête est formatée avec un style personnalisé ("AxureHeading1", "AxureHeading2", "AxureHeading3").
  • J'ai pu créer une table des matières avec les en-têtes personnalisés: Onglet Références, cliquez sur Table des matières, cliquez sur Insérer une table des matières, puis sur Options. Sous Styles disponibles.
  • Mais je ne parviens pas à comprendre ce que je dois faire pour inclure ces en-têtes personnalisés dans le volet de navigation

Que puis-je faire pour soit

  1. changer chaque en-tête personnalisé (niveau 1, 2, 3) avec les en-têtes intégrés de Word sans cliquer et sélectionner chaque en-tête manuellement (Macro VBA?)
  2. ou ajuster le style d'en-tête personnalisé pour qu'il apparaisse dans le volet de navigation

Une image du volet de navigation montrant les en-têtes intégrés Volet de navigation dans Word 2010

Mise à jour

Il semble que mon approche par macro fonctionne (option 1). Mais si quelqu'un connaît un moyen pour l'option 2, je serais quand même intéressé à en entendre parler.

14voto

Archesys Points 11

La VBA n'est pas requise.

Dans la boîte de dialogue Modifier le style, sélectionnez FORMAT - PARAGRAPHE et changez le NIVEAU DE PLAN de Corps de texte au niveau de plan souhaité.

Cela ajoutera tous les titres avec ce style à la structure du document affichée dans le volet de navigation.

1voto

surfmuggle Points 261

Option 1 pour remplacer la mise en forme

Utilisation d'une macro

La macro suivante modifie le style du titre

Sub TrouverEtRemplacerStyle()

Dim intI As Integer
Dim newStyle As String

For intI = 1 To ActiveDocument.Paragraphs.Count

    curStyle = ActiveDocument.Paragraphs(intI).Style

    If curStyle = "AxureHeading1" Then
       Call SetStyle(intI, wdStyleHeading1)

    ElseIf curStyle = "AxureHeading2" Then            
        Call SetStyle(intI, wdStyleHeading2)

    ElseIf curStyle = "AxureHeading3" Then
        Call SetStyle(intI, wdStyleHeading3)

    End If       

Next intI

et pour réduire la duplication du code et améliorer la lisibilité, une petite fonction d'aide

Sub SetStyle(intI, newStyle)

    Dim ranActRange As Range
    Set ranActRange = ActiveDocument.Paragraphs(intI).Range

        With ranActRange               
            ranActRange.Style = newStyle
        End With

End Sub

Utilisation de la boîte de dialogue de recherche et remplacement

Dans cet article j'ai trouvé que en utilisant la fonction de recherche et remplacement intégrée (CTRL +H) vous pouvez choisir de rechercher une mise en forme. Je ne l'ai pas encore testé sur mon document mais cela semble prometteur.

Option 2 Changer le niveau de plan

Comme Patrick l'a suggéré, vous pouvez changer le NIVEAU DE PLAN de "Corps de texte" à un autre. Puisque ma modification de la réponse de Patricks a été rejetée, j'ai inclus la capture d'écran dans cette réponse.

Ouvrir la boîte de dialogue de modification de style

Ouvrir la boîte de dialogue de modification de style

Sélectionnez le paragraphe comme l'objet de format que vous souhaitez changer

Sélectionnez le paragraphe comme l'objet de format que vous souhaitez changer

Sélectionnez le niveau de plan

Sélectionnez le niveau de plan

0voto

Ken Blair Points 1

La manière la plus simple est de faire en sorte que votre titre de premier niveau soit basé sur Titre 1 dans la boîte de dialogue Nouveau Style (ou Modifier).

Tant que vos titres personnalisés découlent du niveau supérieur, ils s'afficheront dans le volet de navigation.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X