Recherche de longues lignes (Microsoft Word)
Lori a demandé un moyen simple de déterminer si un paragraphe « déborde » sur plus d’une ligne. Il semble que lorsque Lori fusionnait des étiquettes, si une ligne (paragraphe) se prolongeait et revenait à la ligne suivante sur l’étiquette, elle voulait réduire la taille en points du texte pour que la ligne n’occupe que cela – une seule ligne.
L’habillage des lignes est une fonctionnalité en temps réel (et en temps d’impression) de Word. Word effectue des calculs internes en continu pour déterminer ce qu’il faut afficher à l’écran ou ce qu’il faut imprimer sur papier. Là où le texte passe d’une ligne à une autre, il n’y a en fait rien pour marquer le point de retour à la ligne (comme dans certains autres traitements de texte), il n’y a donc rien à rechercher ou à trouver. De plus, la fonction Rechercher de Word n’a pas d’option (spéciale ou autre) pour rechercher des éléments et indiquer le nombre de lignes sur lesquelles les éléments trouvés se répartissent.
Il est possible de faire une longue série d’opérations de recherche et de remplacement pour essayer de « truquer » et découvrir les lignes trop longues. Par exemple, vous pouvez suivre ces étapes générales:
-
Remplacez tous les espaces dans un document fusionné par une combinaison de caractères standard, telle que [s].
-
Remplacez tous les tirets d’un document fusionné par une combinaison de caractères standard, telle que [d].
-
Désormais, tous les paragraphes du document sont constitués d’un seul mot assemblé.
-
Exécutez l’outil de césure pour couper manuellement le document.
-
Chaque fois que Word trouve une ligne qui doit être coupée, vous pouvez réduire la taille en points de cette ligne.
-
Refaites vos remplacements, remettez [s] et [d] à leurs espaces et tirets normaux.
Cela peut sembler un peu compliqué, et c’est le cas. Mais cela fonctionnera plutôt bien, à moins que vous ne souhaitiez vous lancer dans l’écriture d’une macro. (Croyez-le ou non, même si vous n’utilisez pas de macros souvent, cette macro particulière est beaucoup plus facile que de répéter les étapes ci-dessus.)
En essayant de décider comment assembler la macro, une triste découverte nous attend dans VBA. Les utilisateurs vétérans de Word se souviendront que lorsque vous utilisez la fonctionnalité de décompte de mots dans Word, le programme vous montre le nombre de lignes dans votre document. Cela impliquerait que vous pouvez utiliser VBA pour déterminer le nombre de lignes dans une sélection. Malheureusement, la propriété ReadabilityStatistics dans VBA ne renvoie pas de statistique pour le nombre de lignes. Cela signifie que la statistique affichée dans la boîte de dialogue Nombre de mots est calculée en interne selon les besoins.
La seule solution apparente consiste à s’appuyer sur la propriété Information pour wdFirstCharacterLineNumber, qui renvoie le numéro de ligne du premier caractère d’une sélection. Malheureusement, aucun wdLastCharacterLineNumber n’est spécifié dans VBA, la macro doit donc effectuer une sélection pour le premier caractère d’un paragraphe, le comparer à une sélection du dernier caractère d’un paragraphe et voir si les deux mêmes numéros de ligne sont renvoyés. Si ce n’est pas le cas, la taille en points du paragraphe peut être réduite et un autre calcul peut être effectué.
La macro VBA suivante, ParaforceOneLine, effectue exactement ce processus. Il examine chaque paragraphe d’un document, et si un paragraphe donné s’étend sur une seule ligne, la taille en points de ce paragraphe particulier est réduite jusqu’à ce qu’il puisse tenir sur une seule ligne.
Sub ParaForceOneLine() Dim objPara As Paragraph Const ChangeSize = 0.5 For Each objPara In ActiveDocument.Paragraphs With objPara.Range While .Information(wdFirstCharacterLineNumber) <> _ .Characters(Len(.Text)).Information(wdFirstCharacterLineNumber) .Font.Size = .Font.Size — ChangeSize Wend End With Next objPara End Sub
_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 (1415) s’applique à Microsoft Word 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban de Word (Word 2007 et plus tard) ici:
lien: / wordribbon-Finding_Long_Lines [Recherche de longues lignes]
.