Comptage des caractères dans les zones de texte (Microsoft Word)
Si vous disposez d’un document qui inclut du texte dans différentes zones de texte, vous devez comprendre que si vous effectuez un décompte de mots, Word n’inclut pas les mots des zones de texte dans le décompte de mots qu’il renvoie. Si vous ne voulez connaître que le nombre de mots dans une zone de texte, il existe un moyen de contourner ce problème:
Sélectionnez simplement la zone de texte dont vous souhaitez compter les mots avant de lancer la fonction de décompte de mots. Word compte alors consciencieusement uniquement les mots dans la zone de texte, ignorant le reste du document.
Cependant, il y a une fois où cette technique de sélection avant comptage ne fonctionnera pas. Si vous avez plusieurs zones de texte contenant des mots et que ces zones de texte sont regroupées, la fonction de décompte de mots ne les reconnaîtra pas comme «dénombrables» si vous sélectionnez le groupe. En d’autres termes, pour compter les caractères dans les zones de texte qui composent le groupe, vous devez d’abord dissocier le groupe, puis compter chaque zone de texte.
De toute évidence, cela peut devenir fastidieux à faire encore et encore. Une façon de contourner ce problème consiste à utiliser une macro qui effectue ces mêmes étapes pour vous.
La macro suivante, TextBoxCount, parcourt toutes les formes de votre document. S’ils sont groupés, ils sont automatiquement dissociés. Il exécute ensuite un décompte de mots sur chaque zone de texte et renvoie une boîte de dialogue qui indique le nombre de mots et de caractères dans les zones de texte (collectivement) et le nombre de mots et de caractères dans l’ensemble du document, y compris les zones de texte.
Sub TextBoxCount() Dim lngTBWords As Long Dim lngTBChars As Long Dim lngDocWords As Long Dim lngDocChars As Long Dim shpTemp As Shape Dim wcTemp As Dialog Dim bDone As Boolean Application.ScreenUpdating = False Do bDone = True For Each shpTemp In ActiveDocument.Shapes If shpTemp.Type = msoGroup Then shpTemp.Ungroup bDone = False End If Next shpTemp Loop Until bDone 'Get count in main document Selection.HomeKey Unit:=wdStory Set wcTemp = Dialogs(wdDialogToolsWordCount) wcTemp.Update wcTemp.Execute lngDocWords = wcTemp.Words lngDocChars = wcTemp.Characters 'Step through shapes and add counts lngTBWords = 0 lngTBChars = 0 For Each shpTemp In ActiveDocument.Shapes shpTemp.Select wcTemp.Execute lngTBWords = lngTBWords + wcTemp.Words lngTBChars = lngTBChars + wcTemp.Characters Next shpTemp lngDocWords = lngDocWords + lngTBWords lngDocChars = lngDocChars + lngTBChars Application.ScreenUpdating = True MsgBox Str(ActiveDocument.Shapes.Count) _ & " text boxes found with" & vbCr _ & Str(lngTBWords) & " word(s) and" & vbCr _ & Str(lngTBChars) & " characters" & vbCr & vbCr _ & " In the total document there are" & vbCr _ & Str(lngDocWords) & " word(s) and" & vbCr _ & Str(lngDocChars) & " characters" End Sub
N’oubliez pas que cette macro dissocie tout regroupement effectué précédemment dans le document. Pour cette raison, vous souhaiterez peut-être exécuter la macro après avoir enregistré votre document, puis supprimer le document (le recharger à partir du disque) après avoir obtenu votre décompte.
_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 (1839) s’applique à Microsoft Word 97, 2000, 2002 et 2003.