Martyn a une feuille de calcul qui comprend, dans la colonne B, pas mal de mots-clés.

Toute cellule individuelle peut avoir n’importe quel nombre de mots-clés uniques, chacun séparé par un espace. Il a besoin d’un moyen de générer une liste de mots-clés uniques ainsi que le nombre de lignes contenant chaque mot-clé.

Il n’existe pas de moyen simple de générer la liste de mots clés à l’aide de formules. Vous pouvez, cependant, travailler rapidement sur une telle liste à l’aide d’une macro. Voici un exemple qui fera le travail très rapidement.

Sub KeywordList()

Dim dTally As Dictionary     Dim rSource As Range     Dim c As Range     Dim d As Variant     Dim aKeys() As String     Dim J As Integer     Dim sTemp As String

Set dTally = New Dictionary     Set rSource = Selection     For Each c In rSource         ' Put all keywords in an array         aKeys = Split(c, " ")

For J = LBound(aKeys) To UBound(aKeys)

sTemp = LCase(Trim(aKeys(J)))

If Len(sTemp) > 0 Then                 If dTally.Exists(sTemp) Then                     ' Increment existing keyword                     dTally(sTemp) = dTally(sTemp) + 1                 Else                     ' Add new keyword and count                     dTally.Add sTemp, 1                 End If             End If         Next J         Erase aKeys     Next c

' Now have all the keywords in a dictionary object     ' Add a new worksheet to store the list     Worksheets.Add     Cells(1, 1) = "Keyword"

Cells(1, 2) = "Count"



J = 1     For Each d In dTally.Keys         J = J + 1         Cells(J, 1) = d         Cells(J, 2) = dTally(d)

Next d End Sub

Si la macro ne fonctionne pas sur votre système, cela peut être dû au fait qu’Excel ne reconnaît pas l’objet Dictionary. Si vous pensez que c’est le cas, assurez-vous d’activer la bibliothèque Microsoft Scripting Runtime dans VBA. (Vous faites cela dans Visual Basic Editor en cliquant sur Outils | Références, en localisant la bibliothèque, en cliquant sur la case à cocher à côté, et enfin en cliquant sur OK.)

Pour utiliser la macro, sélectionnez simplement les cellules qui contiennent les mots-clés que vous voulez compter (dans le cas de Martyn, ce serait les cellules de la colonne B), puis exécutez la macro. Il crée une nouvelle feuille de calcul qui répertorie les mots-clés dans la colonne A et, dans la colonne B, combien de fois chaque mot-clé apparaît.

Comme écrit, la macro ne prête aucune attention à la casse des mots-clés; cela signifie, par exemple, que « Orange » est le même que « orange ». Si vous souhaitez que la liste de mots clés soit sensible à la casse, vous devez simplement supprimer l’instruction LCase; il n’est utilisé qu’une seule fois dans la macro.

Vous devez également être conscient que les mots clés sont répertoriés dans la nouvelle feuille de calcul dans l’ordre dans lequel ils apparaissent dans la sélection que vous effectuez avant d’exécuter la macro. Une fois dans la feuille de calcul, vous pouvez facilement trier les mots-clés, si vous le souhaitez.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (13499) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.