Nombre de mots pour les en-têtes et pieds de page (Microsoft Word)
Kate doit générer un nombre de mots uniquement pour les en-têtes et pieds de page d’un document, et elle ne sait pas comment le faire.
Il n’y a pas de moyen automatique de le faire, mais vous pouvez développer une macro qui calculera le nombre. VBA vous permet de parcourir facilement les en-têtes de chaque section de votre document, puis vous pouvez déterminer le nombre de mots dans chaque en-tête. Une approche consiste à utiliser une macro comme la suivante:
Sub CntHeaderWords() Dim s As Section Dim h As HeaderFooter Dim sRaw As String Dim Cnt As Long Dim J As Integer Cnt = 0 For Each s In ActiveDocument.Sections For Each h In s.Headers For J = 1 To h.Range.Words.Count sRaw = h.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then Cnt = Cnt + 1 Next J Next h Next s MsgBox Cnt & " words in headers" End Sub
Lorsque vous exécutez cette macro, il parcourt chaque section du document, puis chaque en-tête de cette section. Le nombre de mots est déterminé pour chaque en-tête et il est ajouté à la variable Cnt. Lorsque la macro est terminée, elle affiche le nombre de mots pour les en-têtes du document.
Il y a quelques choses intéressantes à noter à propos de cette macro.
Tout d’abord, étant donné que vous pouvez déterminer une propriété Count pour la collection Words pour chaque en-tête, vous pouvez penser que vous pouvez simplement additionner tous ces nombres ensemble pour déterminer votre nombre global de mots. Le problème est que même s’il n’y a aucun en-tête pour une section, Word renvoie un nombre de mots de 1 pour un en-tête « implicite ». C’est pourquoi la macro examine en fait chaque mot de l’en-tête, et s’il ne s’agit que d’un retour chariot ou d’un saut de ligne, il n’est pas inclus dans le décompte.
Un autre élément à noter est que si vous avez une ponctuation dans votre en-tête, chaque signe de ponctuation compte comme un mot. Par exemple, si vous avez l’en-tête «Tous droits réservés», Word considère que c’est trois mots. Si l’en-tête est «Tous droits réservés». (avec le point final), Word considère qu’il s’agit de quatre mots. Le résultat est que si vous pensez qu’il peut y avoir de la ponctuation dans vos en-têtes, vous voudrez peut-être ajuster le code de la macro pour ne pas compter la ponctuation.
Cette macro renvoie uniquement un nombre de mots pour les en-têtes d’un document. Si vous souhaitez, à la place, un nombre de mots pour les en-têtes et les pieds de page, vous pouvez ajuster la macro de cette manière:
Sub CntHFWords() Dim s As Section Dim h As HeaderFooter Dim f As HeaderFooter Dim sRaw As String Dim HdCnt As Long Dim FtCnt As Long Dim J As Integer HdCnt = 0 FtCnt = 0 For Each s In ActiveDocument.Sections For Each h In s.Headers For J = 1 To h.Range.Words.Count sRaw = h.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then HdCnt = HdCnt + 1 Next J Next h For Each f In s.Footers For J = 1 To f.Range.Words.Count sRaw = f.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then FtCnt = FtCnt + 1 Next J Next f Next s sRaw = "Header words: " & HdCnt & vbCrLf sRaw = sRaw & "Footer words: " & FtCnt & vbCrLf sRaw = sRaw & "Total words: " & HdCnt + FtCnt MsgBox sRaw End Sub
Cette version de la macro applique exactement la même technique de comptage à chaque pied de page qu’à chaque en-tête, affichant les comptages individuels et totaux à la fin de la macro.
_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 (10285) s’applique à Microsoft Word 2007, 2010 et 2013.