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.