Lorsque vous sélectionnez un objet graphique, une ancre apparaît effectivement en marge du document. Elle indique à quel paragraphe est attachée cette image. Si vous déplacez ce paragraphe sur une autre page, l'image se déplace également.
NB : Pour visualiser l'ancre d'un objet graphique, vous devez demander l'affichage des caractères non imprimables.
Si vous supprimez, copiez, coupez, collez ce paragraphe, l'objet graphique subit le même sort.
Pour ancrer l'objet à un autre paragraphe, déplacez l'ancre à la souris.
Si vous bougez l'objet seul, l'ancre bouge également : l'objet s'ancre à un nouveau paragraphe.
Pour que l'objet soit toujours ancré au même paragraphe, cochez l'option Ancrer dans la boîte de dialogue Mise en page avancée. Lorsque cette option est cochée, l'ancre sur la page est associée à un cadenas. Vous êtes libre de déplacer l'image sur la même page, mais elle reste ancrée à ce paragraphe ; par contre, vous ne pouvez pas la déplacer sur une autre page, et il est impossible de déplacer l'ancre.
Pour que l'objet se déplace avec le paragraphe sur la même page, cochez l'option Déplacer avec l'image dans la boîte de dialogue Mise en page avancée : cela revient à positionner l'image verticalement par rapport au paragraphe.
Attention : Déplacer avec l'image
Cette option ne fonctionne que si l'option Position absolue de la rubrique Vertical est cochée.
Par ailleurs, elle ne restera pas cochée : en réalité, elle ne fait que modifier le choix de l'élément par rapport auquel est positionnée l'image, dans la rubrique Vertical : en effet, si la position absolue est réglée par rapport à la page ou aux marges, cocher l’option Déplacer avec l’image revient à cocher l’option par rapport au paragraphe.
Pour afficher la boîte de dialogue Mise en page avancée :
Sélection de l'image, puis Onglet Outils de l'image/Format, groupe Organiser, bouton Position => Autres options de dispositions, onglet Position
Sélection de l'image, clic sur le bouton Options de mise en page qui s'affiche à côté, clic sur Afficher plus (onglet Position)
]]>
Sachant qu'une mise en page est contenue dans un saut de section et qu'il peut y avoir plusieurs sauts de section, et donc plusieurs mises en pages, dans un même document, il n'est pas aussi simple de récupérer une mise en page qu'une mise en forme.
]]>Il est possible d'insérer une numérotation automatique en insérant un code de champ : Il s'agit d'utiliser le numéro de page pour calculer le numéro de colonne.
On utilise deux formules : l'une pour les colonnes paires et l'autre pour les colonnes impaires.
Exemple : Si les colonnes commencent à la page 10, on aura :
Pour insérer une formule, on va donc insérer le champ suivant (je rappelle que les { } s'obtiennent avec la combinaison de touches Ctrl+F9):
{= ({PAGE } - 10) * 2 + 1 }
{= ({PAGE } - 10) * 2 + 2 }
Afin de bien positionner les numéros, le mieux est d'insérer un tableau d'une ligne et de deux colonnes en pied de page, avec un centrage dans chaque colonne.
]]>
Cela signifie qu'on peut avoir le même en-tête dans tout le document sans avoir besoin d'insérer des sauts de section puisque ce champ renvoie le style de Titre n de la page en cours. S'il y a plusieurs titres sur la même page, on a le choix entre le premier ou le dernier.
Par défaut, le champ STYLEREF insèrera donc le premier Titre n de la page cours et s'il n'y en a pas, cherche le dernier utilisé depuis le début de la section ; il sera modifié à chaque fois qu'un nouveau Titre n apparaîtra.
Si l'on ajoute le commutateur l, le champ insérera, non pas le premier, mais le dernier Titre n trouvé sur la page (commence par le bas).
On peut insérer ce champ via le menu des champs. Dans ce cas, il faut chercher le champ Réfstyle dans la liste.
C'est aussi simple à la main afin d'obtenir par exemple ceci pour le style Titre 1 (je rappelle que les accolades s'insèrent via les touches Ctrl+F9) :
{ STYLEREF "Titre 1" }
]]>Si, au contraire, il s'agit d'un document dont le texte est continu, mais uniquement sur les pages impaires (par exemple), une macro est nécessaire. Tapez donc votre texte normalement sans vous préoccuper des sauts de page. Exécutez ensuite la macro suivante une fois que tout le document est réellement terminé.
Au cas où, après coup, vous devez modifier le texte avec des ajouts et suppressions, vous devrez supprimer tous les sauts de pages et relancer la macro. Pour supprimer tous les sauts de page, c'est très simple et très rapide avec un Recherche-Remplace (Rechercher ^b et remplacer par rien).
Sub sauts_page()
'macro écrite par m@rina
Dim nombre, nombre2
Selection.HomeKey Unit:=wdStory
nombre = Selection.Information(wdNumberOfPagesInDocument)
nombre2 = 1
Do While nombre2 < nombre
nombre2 = Selection.Information(wdActiveEndPageNumber)
With Selection
.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
.InsertBreak Type:=wdPageBreak
End With
Loop
End Sub
Pour rappel, le champ STYLEREF sera utilisé pour insérer le titre en cours. Voir cet article.
Pour insérer le titre précédent et le titre suivant, on ne peut pas utiliser le champ STYLEREF. La solution passe par une macro assez simple qui va créer une variable de document affectée à chacun des titres. Plutôt que de créer une macro qui va insérer tout cela à la fois, je préconise cette méthode qui a l'avantage d'être beaucoup plus souple. En effet, une fois les variables créées, vous pourrez les insérer où bon vous semble via des champs DOCVARIABLE. Ainsi tout le monde pourra insérer ses champs aux endroits de son choix, sans se préoccuper de la macro.
Pour commencer, il va falloir séparer chaque chapitre par un saut de section, car la macro va s'appuyer sur les numéros de section.
Voici donc la macro qui va créer les variables basées sur les titres de style Titre 1 contenus dans chaque section, supposant que le premier titre de chapitre se trouve dans la première section, que le deuxième dans la deuxième section, et ainsi de suite.
Sub variables()
'macro écrite par m@rina
'crée une variable pour chaque titre 1
Dim para As Paragraph
Dim texte As String, texte2 As String, nombre, numéro
For Each para In ActiveDocument.Paragraphs
If para.Style = "Titre 1" Then
para.Range.Select
texte = para.Range.Text
nombre = Selection.Characters.Count
'récupère le texte du titre sans le retour paragraphe
texte2 = (Left(texte, nombre - 1))
'récupère le numéro de la section correspondant au titre
numéro = Selection.Information(wdActiveEndSectionNumber)
'crée la variable avec le nom de la section et la valeur titre
ActiveDocument.variables.Add Name:=numéro, Value:=texte2
End If
Next
Selection.HomeKey Unit:=wdStory
End Sub
Cette macro est à exécuter une seule fois. Elle va créer les variables. Ensuite, on n'a plus à s'en occuper sauf en cas de modifications du document, en particulier, ajout ou suppression de chapitres, de sections, modification des titres, etc.
Une fois cette macro exécutée, il vous reste à insérer les champs DOCVARIABLE dans votre en-tête ou votre pied de page.
Voici le champ qui va insérer le titre précédent :
{ DOCVARIABLE "{ ={section}-1 }"}
Et voici le champ qui va insérer le titre suivant :
{ DOCVARIABLE "{ ={section}+1 }"}
Important : comme pour n'importe quel champ, TOUTES les accolades { } s'insèrent via le raccourci Ctrl+F9.
NB : Dans la première section, le premier champ affichera une erreur puisqu'il n'y aura pas de section précédente. De la même façon, dans la dernière section, le deuxième champ affichera une erreur puisqu'il n'y aura pas de section suivante. Vous devrez alors désolidariser ces sections du reste du document afin que la premier champ ne figure dans la première section et que le second champ ne figure pas dans la dernière section.
Pas de problème ! Il suffira de supprimer toutes les variables et de les recréer. Pour les supprimer, lancez la macro suivante :
Sub suppr_var()
For Each var In ActiveDocument.variables
var.Delete
Next
End Sub
Les variables étant détruites, relancez la macro "variables" ci-avant pour les recréer. Vous n'avez pas à refaire les champs.
En complément, voici deux macros permettant de vérifier les noms des variables et leur valeur. En clair, le nom de la variable doit correspondre au numéro de la section, et la valeur doit correspondre au texte du titre.
La première affichera tour à tour chaque variable dans une boîte de dialogue. La seconde listera toutes vos variables dans un nouveau document. Cette deuxième macro est plus intéressante pour les gros documents comportant beaucoup de titres.
Sub vérif()
Dim var As Variable
For Each var In ActiveDocument.variables
MsgBox "Nom = " & var.Name & vbCr & "Valeur = " & var.Value
Next var
End Sub
Sub vérif2()
Dim var As Variable, mavar As String, liste As String, nouveau As Document
For Each var In ActiveDocument.variables
mavar = "Nom = " & var.Name & " Valeur = " & var.Value
liste = liste & mavar & vbCr
Next var
Set nouveau = Documents.Add
Selection.TypeText Text:=liste
End Sub
L'option Lier au précédent est une option par défaut, il faut juste y ajouter l'option de commencer à 1 pour la numérotation des pages.
]]>Dans la boîte de dialogue Mise en page , onglet Mise en page (ou Disposition) => alignement vertical justifié.
A la fin de la dernière colonne, il faut insérer un saut de section continu :
Onglet Mise en page, groupe Mise en page (ou Disposition), sauts de pages => saut de section continu
]]>
Sélection de l'image puis onglet Format de l'image, groupe Organiser => Bouton Position : choisir la position Au milieu au centre.
Ce choix donne automatiquement un habillage carré à l'image.
Pour un habillage différent, il suffit de sélectionner l'image déjà positionnée au centre, puis lui donner un autre habillage via le bouton Habillage situé sous l'onglet Format de l'image, groupe Organiser.