Commpter mots dans un classeur

Bonjour à tous supers utilisateurs d'excel.

je suis débutant en VBA et je recherche activement quelques lignes pour :

  • compter le nombre de fois qu'un mot apparaît dans une sélection de cellules commune à toutes les feuilles de mon classeur.
  • Ayant un bon nombre de mots à chercher, j'aurais aimé avoir la possibilité d'écrire ces mots dans une feuille spécifique dans une colonne de tableau et d'avoir le résultat affiché dans une autre colonne de ce même tableau.
merci d'avance pour votre aide

Bonjour et sur le forum,

Tu tombes bien, j'ai traité un sujet où il fallait compter le nombre de fois que des mots apparaissaient dans un classeur dans une colonne donnée, je te transmets le sujet : https://forum.excel-pratique.com/viewtopic.php?f=2&t=110793&hilit=mot&start=10

Il faudra bien sûr adapter le code à ton besoin, car tu ne veux compter que certains mots sur une plage de cellules données, mais l'idée est là

Bonjour,

Cette discussion pourrait donner de bonnes indications:

https://forum.excel-pratique.com/viewtopic.php?t=41097

A+

Bonjour,

voici un autre exemple,

j'ai mit la liste de mots à compter sur Feuil4 en cellule A1:Ax et le résultat sur B1:Bx

les mots de cette liste ne sont pas pris en compte dans le résultat.

Sub test()
For i = 1 To Sheets("Feuil4").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Feuil4").Cells(i, 2) = Compteur(Sheets("Feuil4").Cells(i, 1).Value) - 1
Next i
End Sub

Function Compteur(mot)
For Each sh In Worksheets
  With sh.Cells
    Set c = .Find(mot, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            Set c = .FindNext(c)
            n = n + 1
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
  End With
Next
Compteur = n
End Function

Merci bcp pour toutes ces réponses très rapides !

je viens d'essayer et ça fonctionne à merveille !! avec si peu de lignes...

Penses-tu qu'il soit possible d'adapter cette macro pour compter le nombre de mots dans un autre classeur fermé ?

merci d'avance

re,

Penses-tu qu'il soit possible d'adapter cette macro pour compter le nombre de mots dans un autre classeur fermé ?

pour 1 seul classeur ?

oui stp

re,

à tester,

Dim MonFichier As Workbook

Sub test()
Dim wk As Workbook
Set wk = ThisWorkbook
Application.ScreenUpdating = False
ChoisirFichier
For i = 1 To wk.Sheets("Feuil4").Cells(Rows.Count, 1).End(xlUp).Row
wk.Sheets("Feuil4").Cells(i, 2) = Compteur(wk.Sheets("Feuil4").Cells(i, 1).Value)
Next i
MonFichier.Close True
Application.ScreenUpdating = True
End Sub

Function Compteur(mot)
For Each sh In MonFichier.Worksheets
  With sh.Cells
    Set c = .Find(mot, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            Set c = .FindNext(c)
            n = n + 1
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
  End With
Next
Compteur = n
End Function

Sub ChoisirFichier()
ChDrive "c:\"
ChDir "C:\Users\isabelle\Documents\test"        'à adapter
On Error Resume Next
fichier = Application.GetOpenFilename(FileFilter:="Excel Workbooks (*.xls*),*.xls*")
If fichier = False Then Exit Sub
Set MonFichier = Workbooks.Open(fichier)
End Sub

re Bonjour et merci pour ta rapidité.

en parcourant le forum j'ai trouvé un vb qui est mieux que ce que j'imaginais, il récapitule en même temps le nombre des occurences par feuille... j'ai juste une galère pour définir une zone de selection par exemple A2:C10. Je n'arrive pas à le modifier. Est-il possible de m'aider encore sur ce coup ?

6cool.zip (16.55 Ko)
Rechercher des sujets similaires à "commpter mots classeur"