Passer au contenu

Comment écrire en vertical dans une en-tête de page ?

Solution : en découpant le texte en plusieurs chaînes contenant un seul caractère et en insérant une zone de texte décalée dans l’en-tête.

La version 97 du traitement de texte de Microsoft ne dispose pas de fonction pour écrire des textes verticalement. Certes, il est possible de changer l’orientation des caractères de 90 degrés dans une zone de texte ou une cellule (commande Format/Orientation du texte). Mais, pour transformer un mot ou une phrase en une succession de caractères qui seront affichés l’un en dessous de l’autre, l’utilisateur doit passer par la conception d’une macro en VBA. Typiquement, cette solution est envisagée pour des titres insérés en-tête de page. Positionner le titre dans une zone de texte après l’avoir découpé en petits tronçons présente l’avantage de laisser l’en-tête réduite au minimum. Bien entendu, la zone de texte ainsi créée peut être placée dans une marge afin de mettre le titre en exergue et augmenter ainsi la surface dédiée au texte du document. Dans cet exemple, il suffit de sélectionner un titre dans une en-tête et d’exécuter la macro EcrireVertical pour obtenir un texte écrit verticalement dans un cartouche grisé situé dans la marge gauche.Listing :
Sub EcrireVertical()
Dim chaine, carchaine As String Dim iteration, deplace
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or
ActiveWindow.ActivePane.View.Type = wdOutlineView Or
ActiveWindow.ActivePane.View.Type = wdMasterView Then
ActiveWindow.ActivePane.View.Type = wdPageView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
chaine = Selection.Text
For iteration = 1 To Len(chaine)
carchaine = Mid(chaine, iteration, 1)
Selection.TypeText Text:=carchaine
Selection.TypeParagraph
Next iteration
deplace = Len(chaine) * 2
Selection.MoveLeft Unit:=wdCharacter, Count:=deplace, Extend:=wdExtend
Selection.CreateTextbox
Selection.ShapeRange.IncrementLeft -36
Selection.ShapeRange.ScaleWidth 0.21, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 2.15, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(192, 192, 192)
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoFalse
End Sub

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Filigrane Press