Comment compter les valeurs uniques dans la plage à l’aide de VBA
Vous pouvez utiliser la syntaxe de base suivante pour compter le nombre de valeurs uniques dans une plage à l’aide de VBA :
Sub CountUnique()
Dim Rng As Range, List As Object, UniqueCount As Long
Set List = CreateObject("Scripting.Dictionary")
'count unique values in range A2:A11
For Each Rng In Range("A2:A11")
If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next
'store unique count
UniqueCount = List.Count
'display unique count
MsgBox "Count of Unique Values: " & UniqueCount
End Sub
Cet exemple particulier compte le nombre de valeurs uniques dans la plage A2:A11 , puis affiche le nombre dans une boîte de message.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : compter les valeurs uniques dans la plage à l’aide de VBA
Supposons que nous ayons la liste suivante de noms d’équipes de basket-ball dans Excel :
Supposons que nous souhaitions compter le nombre de noms d’équipe uniques dans la plage A2:A11 .
Nous pouvons créer la macro suivante pour ce faire :
Sub CountUnique()
Dim Rng As Range, List As Object, UniqueCount As Long
Set List = CreateObject("Scripting.Dictionary")
'count unique values in range A2:A11
For Each Rng In Range("A2:A11")
If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next
'store unique count
UniqueCount = List.Count
'display unique count
MsgBox "Count of Unique Values: " & UniqueCount
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
La boîte de message nous indique qu’il existe 5 noms d’équipe uniques.
Nous pouvons vérifier que cela est correct en identifiant manuellement chacun des noms d’équipe uniques :
- Mavs
- Chaleur
- Filets
- Guerriers
- rois
Il existe en effet 5 noms d’équipe uniques.
Remarque : Pour compter le nombre de valeurs uniques dans une plage différente, remplacez simplement A2:A11 dans la boucle For Each par une plage différente.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment compter les cellules avec un texte spécifique
VBA : Comment compter le nombre de lignes dans la plage
VBA : Comment écrire les fonctions COUNTIF et COUNTIFS