Préambule
Il arrive régulièrement que nous devions utiliser une liste de valeurs uniques au sein d'une plage de données.
Il y a évidemment de nombreuses méthodes pour y arriver. J'en ai choisi deux. La première utilise la fonction Evaluate en y incluant comme argument, la fonction native d'excel UNIQUE (uniquement pour la version 365) et la seconde utilise l'objet Dictionary.
Chacune d'elles est présentée au sein d'une fonction générique.
635828
Exemple choisi
Pour l'exemple, nous allons choisir d'obtenir les éléments uniques de la colonne Statut du tableau structuré nommé t_Data comme illustré plus haut.
La fonction générique
La fonction générique nommée GetUniqueValue renvoie une table à une dimension contenant les éléments uniques de la colonne d'un tableau structuré dont les noms sont passés en arguments (TableName et LabelName)
Important : La table dont le nom est passé en argument est sensé être présente dans le classeur actif et le nom de la colonne doit exister (la fonction présentée ici ne le contrôle pas) .
Code de la procédure (Exemple 1)
Utilisation de la fonction native d'excel UNIQUE comme argument de la fonction VBA Evaluate.
Pour l'exemple choisi, la formule est =UNIQUE(t_Data)
Attention, pour utiliser cette première procédure, il faut la version 365
Function GetUniqueValue(TableName As String, LabelName As String)
' Renvoie la liste des éléments unique présents dans la colonne du tableau passé par arguments
' Philippe Tulliez (https://magicoffice.be)
' Arguments
' TableName Nom du tableau
' LabelName Etiquette de la colonne
' Déclaration
Const FormulaPattern As String = "=UNIQUE(