Mettre en évidence chaque millième de caractère (Microsoft Word)
Hakan a besoin d’une macro qui compte les caractères (sans espaces) dans un document Word et met en évidence toutes les 1000 lettres. La création d’une telle macro est assez simple: il vous suffit d’examiner tous les caractères d’un document, à tour de rôle, et de ne compter que ceux qui ne sont pas des espaces. Ce qui suit est une simple petite macro qui fera exactement cela:
Sub CountThousands1() Dim J As Long Dim X As Integer X = 0 With ActiveDocument For J = 1 To .Characters.Count If .Characters(J) <> " " Then X = X + 1 If X = 1000 Then .Characters(J).Select Selection.Range.HighlightColorIndex = wdYellow X = 0 Beep End If Next J End With End Sub
La macro est assez simple; il examine la collection Characters, qui contient tous les caractères individuels d’un document. Le problème avec la macro est qu’elle est lente – très lente. Word n’est pas très efficace pour examiner des caractères individuels de cette manière. (Il semble que chaque fois que vous faites référence à un membre de la collection Characters, Word doit examiner tous les caractères depuis le début du document, une fois de plus.)
Une approche différente consiste simplement à parcourir le document, en élargissant une sélection jusqu’à ce que vous obteniez 1 000 caractères non espace.
Sub CountThousands2() Dim X As Integer Dim sRaw As String Dim sProc As String Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend While Len(Selection) = 1000 sRaw = Selection sProc = Replace(sRaw, " ", "") X = 1000 - Len(sProc) While X > 0 Selection.MoveRight Unit:=wdCharacter, Count:=X, Extend:=wdExtend sRaw = Selection sProc = Replace(sRaw, " ", "") X = 1000 - Len(sProc) Wend Selection.Collapse Direction:=wdCollapseEnd Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Range.HighlightColorIndex = wdYellow Selection.Collapse Direction:=wdCollapseEnd Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend Wend End Sub
Démarrez cette macro avec le point d’insertion au début du document. La macro saisit alors mille caractères, attribue cette sélection à une variable (sRaw), crée une variable dont tous les espaces sont supprimés (sProc) et calcule ensuite la longueur de sProc. S’il est inférieur à 1 000, la sélection est étendue par le nombre de caractères qu’elle était courte et le processus est répété. Lorsque la sélection contient 1 000 caractères non-espace, la surbrillance est définie et la macro passe au bloc de caractères suivant.
_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 (7870) 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:
link: / wordribbon-Highlighting_Every_Thousandth_Character [Soulignant chaque millième caractère]
.