Nous allons terminer cet ouvrage en définissant une macro qui assurera la mise en page complète d'un texte d'une dizaine de pages tiré des Fables de Jean de La Fontaine. Outre la définition de cette macro, et donc la mise en pratique du chapitre précédent, vous réviserez plusieurs techniques qui vous ont été révélées tout au long du livre.
Alors, impatients de tester tout ce que vous avez appris ? Ne tardons pas, commençons !
Instructions pour réaliser le TP
La mise en forme automatique de documents, vous en rêviez ? Ce livre vous montre comment y arriver ! Là, je crois que j'en fais un peu trop. Quoi que… Imaginez qu'il soit possible de mettre en forme la totalité d'un document en cliquant sur une icône. C'est ce que nous allons réaliser dans ce chapitre.
Afin de vous montrer de quoi je parle exactement, je vous conseille de comparer la figure suivante, qui représente le document à mettre en page, avec la figure suivante qui représente le document une fois mis en page. Avouez quand même que la différence saute aux yeux !


Arrivés à ce stade du livre, vous devriez être capables d'obtenir à peu près le même résultat que moi. Je ne vous demande pas un document identique, l'intérêt de ce TP n'est pas là. Le but est de modifier intégralement l'aspect d'un document en appuyant sur une seule et unique icône.
Vous aurez également besoin d'une image pour ajouter un filigrane au document. Vous pouvez trouver les fables ici.
Je ne vous en dis pas plus, c'est à vous de jouer. Et si vous n'y arrivez pas, n'ayez aucune inquiétude : la correction arrive.
Correction
J'espère que tout s'est bien passé pour vous. Si vous avez éprouvé des difficultés sur un point particulier, n'hésitez pas à vous reporter à la section correspondante. Vous pouvez aussi choisir de lire la correction du début à la fin ou encore de refaire (ou de faire) la macro en suivant toutes les étapes expliquées dans la correction.
Après avoir ouvert le document, sélectionnez le premier paragraphe et cliquez sur l'icôneCouper
(dans le groupePresse-papiers
, sous l'ongletAccueil
du Ruban). Ce texte vous servira dans la définition de l'en-tête. Basculez ensuite sur l'ongletDéveloppeur
, cliquez surEnregistrer une macro
, donnez lui un nom approprié (pour ma part j'ai choisiMise_en_page
) et validez en cliquant surOK
. Je suis sûr que vous avez tous pensé à le faire, mais un rappel ne fait jamais de mal !
Ajouter un en-tête
Basculez sur l'ongletInsertion
du Ruban, cliquez sur l'icôneEn-tête
dans le groupeEn-tête et pied de page
et choisissezModifier l'en-tête
. Appuyez sur les touches Ctrl + V pour insérer dans l'en-tête le contenu du presse-papiers, c'est-à-dire le titre
du document. Basculez sur l'ongletAccueil
et cliquez sur l'icôneCentrer
dans le groupeParagraphe
pour centrer l'en-tête sur la largeur du document. Cliquez enfin sur l'icôneFermer l'en-tête et le pied de page
dans le groupeFermer
, sous l'ongletCréation
du Ruban. Vous devriez obtenir quelque chose de similaire à la figure suivante.

Changer lesTitre 2
Pour ce TP, j'ai changé lesTitre 2
en caractèresArial Black
,16 points
,souligné double
,centré
, mais vous êtes libres de choisir une autre mise en forme.
Basculez sur l'ongletAccueil
du Ruban. Cliquez sur l'icôneRemplacer
du groupeModification
. Si la boîte de dialogueRechercher et remplacer
n'est pas déployée, cliquez surPlus
. Dans l'angle inférieur gauche de la boîte de dialogue, cliquez surFormat
, sélectionnezStyle
, choisissezTitre 2
et validez en cliquant surOK
.
Cliquez dans le champRemplacer par
. Cliquez surFormat
puis surPolice
. Choisissez la policeArial Black
et la taille16
. Choisissez un soulignement double dans la liste déroulanteSoulignement
puis validez en cliquant surOK
.
Cliquez surFormat
puis surParagraphe
. SélectionnezCentré
dans la liste déroulanteAlignement
puis validez en cliquant surOK
.
Si vous avez suivi nos consignes, la boîte de dialogueRechercher et remplacer
doit maintenant ressembler à la figure suivante.

Cliquez surRemplacer tout
. Validez en cliquant surOK
puis refermez la boîte de dialogueRechercher et remplacer
.
Remplacer le styleNormal
Pour ce TP, j'ai changé le styleNormal
par duArial Corps 13 Espace après 0
Cliquez sur l'icôneRemplacer
dans le groupeModification
, sous l'ongletAccueil
du Ruban. Le point d'insertion clignote dans le champRechercher
. Les réglages effectués à l'étape précédente étant toujours mémorisés, cliquez surSans attribut
pour les annuler. Cliquez surFormat
puis surStyle
. Sélectionnez le styleNormal
et validez en cliquant surOK
.
Cliquez dans le champRemplacer par
. Cliquez surSans attribut
pour effacer les réglages de l'étape précédente. Cliquez surFormat
puis surPolice
. Choisissez la policeArial
, taille13
, puis validez en cliquant surOK
. Cliquez surFormat
puis surParagraphe
. Tapez0 pt
dans le champAprès
et validez en cliquant surOK
. La boîte de dialogueRechercher et remplacer
doit maintenant ressembler à la figure suivante.

Cliquez surRemplacer tout
puis surOK
; refermez alors la boîte de dialogueRechercher et remplacer
.
Insérer un filigrane
Il vous faut basculer sur l'ongletMise en page
, cliquez sur l'icôneFiligrane
(groupeArrière-plan de page
) et choisissezFiligrane personnalisé
. Dans la boîte de dialogueFiligrane personnalisé
, sélectionnezImage en filigrane
et désignez votre image. Cliquez surOK
pour valider, comme indiqué à la figure suivante.

Insérer une lettrine
Pour ce TP, j'ai ajouté une lettrine sur la première lettre qui suit chaqueTitre 2
.
Basculez sur l'ongletAccueil
. Dans le groupeModification
, cliquez sur la flèche à droite de l'icôneRechercher
puis sélectionnezRecherche avancée
. Cliquez surFormat
puis surStyle
. ChoisissezTitre 2
et validez en cliquant surOK
. Cliquez surSuivant
et refermez la boîte de dialogueRechercher et remplacer
. Appuyez sur la flèche de droite de votre clavier pour passer après le saut de paragraphe de styleTitre 2
. Maintenez enfoncée la touche Maj puis appuyez à nouveau sur la flèche de droite de votre clavier pour sélectionner le premier caractère.
Basculez sur l'ongletInsertion
du Ruban. Dans le groupeTexte
, cliquez sur l'icôneLettrine
puis choisissezDans le texte
, comme à la figure suivante.

Vous pouvez arrêter l'enregistrement de la macro. Basculez sur l'ongletDéveloppeur
et cliquez sur l'icôneArrêter l'enregistrement
.
Vous vous doutez que le travail n'est pas fini. Il faut maintenant intervenir dans le code VBA généré par l'enregistreur de macros pour répéter l'insertion d'une lettrine autant de fois que nécessaire.
Basculez sur l'ongletDéveloppeur
du Ruban, cliquez sur l'icôneMacros
du groupeCode
, sélectionnez la macroMise en page
puis cliquez surModifier
. Identifiez le dernier bloc d'instructions (celui qui est responsable de l'insertion de la lettrine) et modifiez le code pour obtenir ceci :
While (a <> 1)
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
If Not (Selection.Find.Found) Then
a = 1
Else
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
With Selection.Paragraphs(1).DropCap
.Position = wdDropNormal
.FontName = "Arial"
.LinesToDrop = 3
.DistanceFromText = CentimetersToPoints(0)
End With
Selection.MoveRight Unit:=wdCharacter, Count:=1
End If
Wend
End Sub
Si les modifications ne vous sautent pas aux yeux, voici ce qui a changé :
Une instruction
While
vient devant l'instructionWith Selection.Find
.Le paramètre
.Wrap
a été initialisé àwdFindAsk
.Trois lignes ont été ajoutées à la suite de l'instruction
Selection.Find.Execute
.Deux lignes ont été ajoutées avant le
End Sub
.
Encore quelques précisions : le dernier bloc d'instructions est exécuté tant que la variablea
est différente de1
. Étant donné qu'elle n'a pas été définie, elle n'a aucune valeur et, jusqu'à preuve du contraire, « rien » est toujours différent de1
. La boucle peut donc s'exécuter au moins une fois.
À la suite de l'instructionSelection.Find.Execute
, responsable de la recherche du paragraphe de styleTitre 2
, l'instructionSelection.Find.Found
indique si un tel paragraphe a été trouvé. Dans le cas contraire (If Not (Selection.Find.Found)
), la variable est initialisée à1
(Then a=1
) :
If Not (Selection.Find.Found) Then a = 1
Si un paragraphe de styleTitre 2
est trouvé, la suite du code (Else
) peut s'exécuter.
Les dernières instructions ajoutées ferment les instructionsIf
(End If
) etWhile
(Wend
).
Pour terminer, le paramètre.Wrap
de l'instructionWith Selection.Find
est initialisé àwdFindAsk
pour que le code prenne fin lorsque la totalité du document aura été décrite :
.Wrap = wdFindAsk
La touche finale
Pour rendre la macro facilement accessible, vous allez définir une icône dans la barre d'outilsAccès rapide
. Cliquez sur l'icônePersonnaliser la barre d'outils Accès rapide
et, dans le menu, sélectionnezAutres commandes
. Dans la boîte de dialogueOptions Word
, sélectionnezMacros
dans la première liste déroulante (1), choisissez la macroNormal.NewMacros.Mise_en_page
dans la première zone de liste (2) puis cliquez surAjouter
(3). Cliquez surModifier
et choisissez une des icônes proposées (4). Cliquez enfin surOK
pour valider l'insertion de l'icône dans la barre d'outilsAccès rapide
(5), comme indiqué à la figure suivante.

Si cela vous intéresse, je mets à votre disposition le code VBA de cette macro, même si vous ne devriez normalement pas en avoir besoin : il suffit de suivre mes indications pour y arriver. ;-)
'
' Mise_en_page Macro
'
'
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Titre 2")
Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement.Font
.Size = 16
.Underline = wdUnderlineDouble
End With
With Selection.Find.Replacement.ParagraphFormat
.SpaceBeforeAuto = False
.SpaceAfterAuto = False
.Alignment = wdAlignParagraphCenter
End With
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Normal")
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Size = 13
With Selection.Find.Replacement.ParagraphFormat
.SpaceBeforeAuto = False
.SpaceAfter = 0
.SpaceAfterAuto = False
.LineUnitAfter = 0
End With
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.Sections(1).Range.Select
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.Shapes.AddPicture(FileName:= _
"C:\Data\jean-de-la-fontaine.jpg", LinkToFile:=False, SaveWithDocument:= _
True).Select
Selection.ShapeRange.Name = "WordPictureWatermark24773234"
Selection.ShapeRange.PictureFormat.Brightness = 0.85
Selection.ShapeRange.PictureFormat.Contrast = 0.15
Selection.ShapeRange.LockAspectRatio = True
Selection.ShapeRange.Height = CentimetersToPoints(17.01)
Selection.ShapeRange.Width = CentimetersToPoints(15.99)
Selection.ShapeRange.WrapFormat.AllowOverlap = True
Selection.ShapeRange.WrapFormat.Side = wdWrapNone
Selection.ShapeRange.WrapFormat.Type = 3
Selection.ShapeRange.RelativeHorizontalPosition = _
wdRelativeVerticalPositionMargin
Selection.ShapeRange.RelativeVerticalPosition = _
wdRelativeVerticalPositionMargin
Selection.ShapeRange.Left = wdShapeCenter
Selection.ShapeRange.Top = wdShapeCenter
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Titre 2")
While (a <> 1)
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
If Not (Selection.Find.Found) Then
a = 1
Else
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
With Selection.Paragraphs(1).DropCap
.Position = wdDropNormal
.FontName = "Arial"
.LinesToDrop = 3
.DistanceFromText = CentimetersToPoints(0)
End With
Selection.MoveRight Unit:=wdCharacter, Count:=1
End If
Wend
End Sub
Nous voici arrivés au terme de ce tutoriel. Vous y avez certainement découvert plusieurs facettes cachées de votre traitement de texte. J'espère en particulier vous avoir convaincus que Word est un logiciel puissant, complet et vraiment abordable pour peu qu'on lui accorde un peu de temps. Auriez-vous pensé que vous pouviez supprimer l'arrière-plan d'une image, poster des articles dans votre blog ou encore insérer des captures d'écran sans quitter Word ?
Pour tirer pleinement parti de votre nouveau traitement de texte, je ne peux que vous encourager à l'utiliser aussi souvent que possible. La pratique, il n'y a que ça de vrai ! Bonne continuation et… à bientôt dans un nouveau tutoriel.