recherche et comptage de mot dans word

  • Initiateur de la discussion Initiateur de la discussion lodam
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lodam

XLDnaute Occasionnel
Bonjour à tous et à toutes

Mon problème général : dans un document word, compter le nombre de fois où apparait un mot listé dans la première colonne d'un fichier excel (je précise que je dois vérifier plusieurs milliers de mots)

Je mets un exemple en pj
- un document word
- un fichier excel

pour l'instant, je bloque au tout début:

Merci pour votre aide précieuse
---------------
Private Sub CommandButton1_Click()


Dim WdApp As Word.Application 'instance de l'appli Word
Dim WdDoc As Word.Document 'instance du document Word à ouvrir
Dim Feuille1 As Worksheet
Dim Chemin, NomFich
Dim NoLigne As Integer, NoCol As Integer, TexteAtrouver

Chemin = "C:\Users\damien\Desktop\"
NomFich = "documentword.doc"

NoLigne = 1
NoCol = 1

Set Feuille1 = ActiveSheet 'instance du classeur actif
Set WdApp = CreateObject("word.application") 'ouvre la session Word
Set wordDoc = wordApp.Documents.Open("C:\Users\damien\Desktop\documentword.doc")
'WdApp.Documents.Open(Chemin & NomFich) 'ouvre le doc
'WdApp.Visible = False 'masque Word

TexteAtrouver = Feuille1.Cells(NoLigne, NoCol).Value


With WdApp

Set Plage = wordDoc.Content.Words
For Each W In Plage
If InStr(1, W.Text, TexteAtrouver) > 0 Then x = x + 1
Next W
MsgBox x

End With

WdDoc.Close True 'Enregistre et ferme le doc word
DoEvents 'Laisse au system le temps d'enregistrer le fichier
Fin::
WdApp.Quit 'ferme la session

Set Plage = Nothing
Set WdApp = Nothing
Set WdDoc = Nothing
End Sub

-------------------
 

Pièces jointes

Re : recherche et comptage de mot dans word

Bonjour Lodam 🙂,
Pour compter des mots, je pense que l'idéal est de passer par RegExp, vu qu'il stocke dans une collection les occurences trouvées et qu'il te suffira de consulter le nombre de celles-ci pour renvoyer le résultat 😉.
Jettes un œil au tuto que j'ai commencé ainsi que le fil qui y est rattaché, ça te donnera une idée de la procédure. Puis reviens vers nous pour les questions complémentaires 😀.
Bonne lecture et bon courage 😎
 
Re : recherche et comptage de mot dans word

Merci pour ta réponse.

Je vais lire ce que tu m'as conseillé. Mais le système par collection me semble un peu complexe.
Le point bloquant est qu'il me met "erreur 5147 : fichier introuvable", c'est ce que je cherche à résoudre dans un premier temps.

merci encore
lodam
 
Re : recherche et comptage de mot dans word

J'ai avancé par rapport à ce matin... ça fonctionne ! Mais gros problème, mon fichier Excel comportant 6000 entrées et mon fichier Word presque 500 pages... ça plante !

Auriez-vous une idée ? par un autre moyen ?

Merci d'avance pour vos réponses


Private Sub CommandButton1_Click()


Dim WdApp As Word.Application 'instance de l'appli Word
Dim WdDoc As Word.Document 'instance du document Word à ouvrir
Dim Feuille1 As Worksheet
Dim Chemin, NomFich
Dim NoLigne As Integer, NoCol As Integer, TexteAtrouver
'Stop
Chemin = "C:\Documents and Settings\fill01\Desktop\test"
NomFich = "documentword.doc"

NoLigne = 1
NoCol = 1

Set Feuille1 = ActiveSheet 'instance du classeur actif
Set WdApp = CreateObject("word.application") 'ouvre la session Word
WdApp.Visible = True
Set WordDoc = WdApp.Documents.Open("C:\Documents and Settings\fill01\Desktop\test\documentword.doc")
'WdApp.Documents.Open(Chemin & NomFich) 'ouvre le doc
'WdApp.Visible = False 'masque Word


Set Plage = WordDoc.Content.Words
NoLigne = 1
Do
TexteAtrouver = Feuille1.Cells(NoLigne, NoCol).Value
If TexteAtrouver = "" Then Exit Do

For Each w In Plage
If InStr(1, w.Text, TexteAtrouver) > 0 Then
w.HighlightColorIndex = wdYellow
x = x + 1
End If
Next w
NoLigne = NoLigne + 1
Loop


MsgBox x


WordDoc.Close True 'Enregistre et ferme le doc word
DoEvents 'Laisse au system le temps d'enregistrer le fichier
Fin::
WdApp.Quit 'ferme la session

Set Plage = Nothing
Set WdApp = Nothing
Set WordDoc = Nothing
End Sub
 
Re : recherche et comptage de mot dans word

Re 🙂,
En utilisant WordDoc.Content.Words, ça veut dire que tu fait autant de tests que de mots dans ton fichier Word, le tout multiplier par tes 6000 entrées 😱...
En utilisant RegExp, tu ne feras que 6000 opérations RegExp 🙄...
Choisi ton camp camarade 😛 !
Bon courage 😎
 
Re : recherche et comptage de mot dans word

Re 🙂,
Essaie avec ça
Code:
Dim WdApp As Word.Application                     'instance de l'appli Word
Dim WdDoc As Word.Document              'instance du document Word à ouvrir
Dim Feuille1 As Worksheet
Dim Chemin, NomFich
Dim NoLigne As Integer, NoCol As Integer, TexteAtrouver
Chemin = "C:\Documents and Settings\fill01\Desktop\test\"
NomFich = "documentword.doc"
NoLigne = 1
NoCol = 1
Set Feuille1 = ActiveSheet                      'instance du classeur actif
    Set WdApp = CreateObject("word.application")     'ouvre la session Word
    WdApp.Visible = True
    Set WdDoc = WdApp.Documents.Open(Chemin & NomFich)
    TexteAtrouver = Feuille1.Cells(NoLigne, NoCol).Value
Dim I As Integer
With WdDoc.ActiveWindow.Selection.Find
    .ClearFormatting
    .Text = TexteAtrouver
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
Do
    .Execute
    I = I + 1
Loop While .Found = True
End With
MsgBox I - 1

     
     WdDoc.Close 'Enregistre et ferme le doc word
    DoEvents            'Laisse au system le temps d'enregistrer le fichier
Fin::
    WdApp.Quit                                            'ferme la session
    
    Set Plage = Nothing
    Set WdApp = Nothing
    Set WdDoc = Nothing
End Sub
Il faudra juste que tu remettes ta boucle sur les cellules 😉.
Bon courage 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
650
Réponses
0
Affichages
718
Retour