VBA : Comment obtenir des valeurs uniques à partir d’une colonne
Vous pouvez utiliser la fonction AdvancedFilter dans VBA pour obtenir rapidement une liste de valeurs uniques à partir d’une colonne dans Excel.
Voici une manière courante de procéder :
Sub GetUniqueValues()
Range("A1:A11").AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=Range("E1"), Unique:=True
End Sub
Cet exemple particulier extrait une liste de valeurs uniques de la plage A1:A11 et les affiche à partir de la cellule E1 .
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : obtenir des valeurs uniques à partir d’une colonne à l’aide de VBA
Supposons que nous ayons l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :
Supposons que nous souhaitions extraire une liste de valeurs uniques de la colonne Équipe .
Nous pouvons créer la macro suivante pour ce faire :
Sub GetUniqueValues()
Range("A1:A11").AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=Range("E1"), Unique:=True
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
La colonne E affiche désormais une liste de valeurs uniques de la colonne Équipe dans l’ensemble de données d’origine.
Notez que la méthode AdvancedFilter ne respecte pas la casse.
Par exemple, si nous avions les noms d’équipe « MAVS » et « Mavs » dans la même colonne, cette macro particulière ne renverrait que la première de ces deux valeurs apparaissant dans la colonne Équipe puisqu’elles partagent exactement les mêmes caractères.
Remarque : Vous pouvez trouver la documentation complète de la méthode AdvancedFilter dans VBA ici .
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 compter les valeurs uniques dans la plage