XL 2016 compter le nombre de mots avec un tableau associatif (recherche rapide)

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 !

Théo gestin

XLDnaute Nouveau
Bonjour tout le monde,

En faite, j'essaie de calculer le nombre d'occurrences de chaque mot qui existe dans la feuille 1. Il faut que je fasse un macro qui permet d'afficher le nombre de chaque mot sur la feuille 2.
J'ai fait un essai, mais il ma parait que le nombre d'occurrences n'est pas bon ( par exemple pour le mot "un" il m'affiche 21 alors qu'il apparait 96 fois) , ainsi que j'arrive pas à afficher le résultat dans la feuille 2.
Est ce que quelqu'un pourra m'aider SVP

Merci d'avance

Cordialement
 

Pièces jointes

Bonjour Théo,
Voici une macro avec l'utilisation du dico
Voir en feuil2
Bruno
VB:
Sub nombre()
With Sheets("Feuil1")
Set dico = CreateObject("Scripting.Dictionary")
For Each c In .Range([a1], .[a65000].End(xlUp))
dico.Item(c.Value) = dico.Item(c.Value)
Next c
End With
With Feuil2
.[a1].Resize(dico.count, 1) = Application.Transpose(dico.keys)
For lig = 1 To dico.count
.Cells(lig, 2) = Application.CountIf(Feuil1.Range("A:A"), .Cells(lig, 1))
Next
End With
End Sub
 

Pièces jointes

Bonjour Youky ,
Merci pour ton retour.
En faite, quand j'essaie d'exécuter la macro, j'ai un message d'erreur qui s'affiche en me disant qu'un composant Active X ne peut pas créer d'objet.
c'est dans cette ligne où y a une erreur "Set dico = CreateObject("Scripting.Dictionary")"
 
Bonjour à tous,

Une macro sans dictionary.
VB:
Sub Compter()
Dim n1&, n2&
Application.ScreenUpdating = False
   With Worksheets("Feuil1")
      If .FilterMode Then .ShowAllData
      n1 = .Cells(.Rows.count, "a").End(xlUp).Row
      .Columns("a:a").Resize(n1).Copy .Cells(1, "c"): .Columns("d:d").Clear
      .Columns("c:c").Resize(n1).RemoveDuplicates Array(1)
      n2 = .Cells(.Rows.count, "c").End(xlUp).Row
      .Cells(1, "d").FormulaLocal = "=NB.SI(a$1:a$" & n1 & ";c1)"
      .Cells(1, "d").AutoFill Destination:=.Cells(1, "d").Resize(n2)
      .Cells(1, "d").Resize(n2) = .Cells(1, "d").Resize(n2).Value
   End With
End Sub
 

Pièces jointes

Dernière édition:
- 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
17
Affichages
275
Retour