Pendant que vous analysez vos documents, vous vous demandez peut-être s’il existe un moyen de calculer le nombre de mots dans le document. Malheureusement, Word n’inclut pas une telle fonctionnalité, mais vous pouvez faire plusieurs choses.

Tout d’abord, si vous souhaitez connaître le nombre de fois qu’un mot ou une phrase spécifique est utilisé, vous pouvez suivre ces étapes:

  1. Appuyez sur Ctrl + H pour afficher l’onglet Remplacer de la boîte de dialogue Rechercher et remplacer. (Voir la figure 1.)

  2. Dans la zone Rechercher, entrez le mot ou la phrase que vous souhaitez compter.

  3. Dans la zone Remplacer par, entrez ^ &. Cette séquence de caractères indique à Word que vous souhaitez remplacer ce que vous trouvez par ce que vous avez placé dans la zone Rechercher. (En d’autres termes, vous remplacez le mot ou la phrase par lui-même.)

  4. Si vous recherchez des mots individuels, assurez-vous de cocher la case Rechercher les mots entiers uniquement.

  5. Cliquez sur Remplacer tout. Word effectue les remplacements et vous montre combien d’instances il a remplacé. C’est le nombre que vous voulez.

Cette approche fonctionne très bien si vous n’avez qu’un ou deux mots ou phrases que vous voulez connaître. Vous pouvez automatiser un peu le processus en utilisant une macro pour rechercher dans le document et compter pour vous. La macro suivante invite l’utilisateur pour un mot, puis compte le nombre de fois que ce mot apparaît dans le document. Il continuera à demander un autre mot jusqu’à ce que l’utilisateur clique sur le bouton Annuler.

Sub FindWords()

Dim sResponse As String     Dim iCount As Integer

' Input different words until the user clicks cancel     Do         ' Identify the word to count         sResponse = InputBox( _           Prompt:="What word do you want to count?", _           Title:="Count Words", Default:="")

If sResponse > "" Then             ' Set the counter to zero for each loop             iCount = 0             Application.ScreenUpdating = False             With Selection                 .HomeKey Unit:=wdStory                 With .Find                     .ClearFormatting                     .Text = sResponse                     ' Loop until Word can no longer                     ' find the search string and                     ' count each instance                     Do While .Execute                         iCount = iCount + 1                         Selection.MoveRight                     Loop                 End With                 ' show the number of occurences                 MsgBox sResponse & " appears " & iCount & " times"

End With             Application.ScreenUpdating = True         End If     Loop While sResponse <> ""

End Sub

Si vous souhaitez déterminer tous les mots uniques d’un document, ainsi que le nombre de fois où chacun d’eux apparaît dans le document, une approche différente est nécessaire. La macro suivante fera exactement cela.

Sub WordFrequency()

Const maxwords = 9000          'Maximum unique words allowed     Dim SingleWord As String       'Raw word pulled from doc     Dim Words(maxwords) As String  'Array to hold unique words     Dim Freq(maxwords) As Integer  'Frequency counter for unique words     Dim WordNum As Integer         'Number of unique words     Dim ByFreq As Boolean          'Flag for sorting order     Dim ttlwds As Long             'Total words in the document     Dim Excludes As String         'Words to be excluded     Dim Found As Boolean           'Temporary flag     Dim j, k, l, Temp As Integer   'Temporary variables     Dim ans As String              'How user wants to sort results     Dim tword As String            '     Dim aword As Object            '     Dim tmpName As String          '

' Set up excluded words     Excludes = "[the][a][of][is][to][for][by][be][and][are]"



' Find out how to sort     ByFreq = True     ans = InputBox("Sort by WORD or by FREQ?", "Sort order", "WORD")

If ans = "" Then End     If UCase(ans) = "WORD" Then         ByFreq = False     End If          Selection.HomeKey Unit:=wdStory     System.Cursor = wdCursorWait     WordNum = 0     ttlwds = ActiveDocument.Words.Count

' Control the repeat     For Each aword In ActiveDocument.Words         SingleWord = Trim(LCase(aword))

'Out of range?

If SingleWord < "a" Or SingleWord > "z" Then             SingleWord = ""

End If         'On exclude list?

If InStr(Excludes, "[" & SingleWord & "]") Then             SingleWord = ""

End If         If Len(SingleWord) > 0 Then             Found = False             For j = 1 To WordNum                 If Words(j) = SingleWord Then                     Freq(j) = Freq(j) + 1                     Found = True                     Exit For                 End If             Next j             If Not Found Then                 WordNum = WordNum + 1                 Words(WordNum) = SingleWord                 Freq(WordNum) = 1             End If             If WordNum > maxwords - 1 Then                 j = MsgBox("Too many words.", vbOKOnly)

Exit For             End If         End If         ttlwds = ttlwds - 1         StatusBar = "Remaining: " & ttlwds & ", Unique: " & WordNum     Next aword

' Now sort it into word order     For j = 1 To WordNum - 1         k = j         For l = j + 1 To WordNum             If (Not ByFreq And Words(l) < Words(k)) _               Or (ByFreq And Freq(l) > Freq(k)) Then k = l         Next l         If k <> j Then             tword = Words(j)

Words(j) = Words(k)

Words(k) = tword             Temp = Freq(j)

Freq(j) = Freq(k)

Freq(k) = Temp         End If         StatusBar = "Sorting: " & WordNum - j     Next j

' Now write out the results     tmpName = ActiveDocument.AttachedTemplate.FullName     Documents.Add Template:=tmpName, NewTemplate:=False     Selection.ParagraphFormat.TabStops.ClearAll     With Selection         For j = 1 To WordNum             .TypeText Text:=Trim(Str(Freq(j))) _               & vbTab & Words(j) & vbCrLf         Next j     End With     System.Cursor = wdCursorNormal     j = MsgBox("There were " & Trim(Str(WordNum)) & _       " different words ", vbOKOnly, "Finished")

End Sub

Lorsque vous ouvrez un document et exécutez cette macro, il vous est demandé si vous souhaitez créer une liste triée par mot ou par fréquence. Si vous choisissez mot, la liste résultante est affichée par ordre alphabétique. Si vous choisissez la fréquence, la liste résultante est dans l’ordre décroissant en fonction du nombre de fois où le mot est apparu dans le document.

Pendant l’exécution de la macro, la barre d’état indique ce qui se passe.

Selon la taille de votre document et la vitesse de votre ordinateur, l’exécution de la macro peut prendre un certain temps. (Je l’ai couru avec un document de 719 pages avec plus de 349 000 mots et il a fallu environ cinq minutes pour terminer.)

Notez qu’il existe une ligne dans la macro qui définit une valeur dans la chaîne Excludes. Cette chaîne contient des mots que la macro ignorera lors de la création de la liste de mots. Si vous souhaitez ajouter des mots à la liste d’exclusion, ajoutez-les simplement à la chaîne, entre [crochets]. Assurez-vous également que les mots d’exclusion sont en minuscules.

Si vous n’aimez pas utiliser les macros pour une raison quelconque, il existe d’autres programmes que vous pouvez utiliser pour créer des comptages de mots. Par exemple, l’éditeur de texte NoteTab (la version « allégée » peut être téléchargée gratuitement sur https://www.notetab.com/) comprend une fonction qui fournit un nombre de mots.

Tout ce que vous avez à faire est de copier l’intégralité de votre document et de le coller dans NoteTab. Ensuite, dans NoteTab, choisissez Outils | Statistiques de texte | Plus. Il présente une analyse de la fréquence des mots, y compris les pourcentages.

_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 (10761) s’applique à Microsoft Word 2007, 2010, 2013 et 2016. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu de Word ici:

link: / word-Generating_a_Count_of_Word_Occurrences [Generating a Count of Word Occurrences].