Caractères dans la marge à côté des paragraphes (Microsoft Word)
Ralph écrit des documents nécessitant des caractères alpha spécifiques à gauche de chaque paragraphe. Ces lettres doivent apparaître dans la marge, comme les numéros de ligne. Les caractères sont généralement les mêmes pour l’ensemble du document, ce qui signifie qu’ils ne changent pas d’un paragraphe à l’autre. Ralph se demande s’il existe un moyen d’insérer automatiquement ces caractères à côté de chaque paragraphe.
Vous pouvez utiliser plusieurs approches pour y parvenir.
Tout d’abord, vous pouvez taper le caractère alpha au début de chaque paragraphe et appuyer sur la touche Tab. Ensuite, mettez en forme le paragraphe afin qu’il utilise un retrait négatif qui place un peu la première ligne dans la marge gauche. Cela pourrait être facilement fait en utilisant des styles qui pourraient être appliqués aux paragraphes.
Si vous souhaitez utiliser beaucoup de paragraphes, il peut être fastidieux de taper le caractère alpha et d’appuyer sur la touche Tab pour chaque paragraphe.
Heureusement, il est facile de créer une macro qui peut s’occuper de l’ennui pour vous.
Sub FmtParagraphs() Dim p As Paragraph For Each p In ActiveDocument.Content.Paragraphs If p.Style = "MyAlpha" Then With p.Range .InsertBefore "R" & Chr(9) End With End If Next p End Sub
La macro recherche tout paragraphe dans le document qui utilise le style MyAlpha. (Cela suppose que MyAlpha « est le style spécial de retrait suspendu que vous avez créé pour appliquer cette approche.) Lorsqu’il en trouve un, il insère la lettre » R « devant le paragraphe, puis un caractère de tabulation. Vous pouvez facilement modifier cette macro pour rechercher un nom de style différent ou pour ajouter un caractère alpha différent.
Une approche similaire consiste à définir un style qui utilise une liste à puces modifiée. Au lieu d’utiliser une puce ordinaire, vous pouvez définir la liste pour utiliser le caractère alpha comme puce. Lors de l’application du style aux paragraphes, le caractère alpha apparaît automatiquement et vous n’avez pas besoin de le taper ou de la tabulation pour le séparer du corps principal du paragraphe.
|||| Les deux approches mentionnées jusqu’à présent fonctionnent rapidement et facilement pour des documents relativement simples. Cependant, elles ne fonctionneront pas si vos documents incluent des listes numérotées ou à puces régulières. Dans ce cas, vous devrez utiliser une approche différente, qui repose sur des zones de texte pour l’emplacement du caractère alpha.
La raison pour laquelle cette approche peut être préférable pour les documents complexes est qu’elle ne repose pas sur les styles. Cela signifie que vous pouvez avoir une grande variété de listes numérotées et à puces dans vos documents, mais que les caractères alpha sont toujours positionnés à gauche de chaque paragraphe, dans la marge.
En outre, les zones de texte peuvent être mises en forme afin qu’elles soient ancrées à chaque paragraphe et se déplacent avec le paragraphe lorsque Word repagine le document.
Bien sûr, si vous avez un document qui contient 300 paragraphes, l’ajout de zones de texte à chaque paragraphe peut être fastidieux, sans parler atroce lorsque vous commencez à formater chaque zone de texte. Encore une fois, les macros peuvent aider à soulager l’ennui. La macro suivante peut être utilisée pour copier automatiquement une zone de texte sélectionnée dans tous les autres paragraphes d’un document.
Sub TextBoxesInMargin() Dim aShape As Shape Dim aPara As Paragraph Dim j As Long Dim shpTop As Single Dim shpLeft As Single Dim aRange As Range If ActiveDocument.Shapes.Count = 0 Then GoTo noTextbox If Selection.ShapeRange.Count <> 1 Then GoTo noTextbox Set aShape = Selection.ShapeRange(1) With aShape If .Type <> msoTextBox Then GoTo noTextbox If aShape.RelativeVerticalPosition <> wdRelativeVerticalPositionParagraph Then MsgBox "The text box must be positioned relative to a paragraph" Exit Sub End If shpTop = .Top shpLeft = .Left aShape.Select Selection.Copy End With For Each aPara In ActiveDocument.Paragraphs Set aRange = aPara.Range If Len(aRange.Text) > 1 Then ' only non blank paragraphs aRange.Select Selection.Paste Selection.ShapeRange.Top = shpTop Selection.ShapeRange.Left = shpLeft End If Next aPara Exit Sub noTextbox: MsgBox "Text box is not selected" End Sub
Pour utiliser la macro, formatez une seule petite zone de texte pour contenir votre caractère alpha. Assurez-vous que la zone de texte est ancrée au paragraphe à côté duquel vous la placez et que sa position est correcte par rapport au paragraphe. Une fois que la zone de texte a exactement l’apparence souhaitée, sélectionnez-la, puis exécutez la macro. La zone de texte est copiée et collée à côté de tous les autres paragraphes du document.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
WordTips est votre source pour une formation Microsoft Word rentable.
(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (12738) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365.