Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.

EXCEL_2016_VBA_EX_ZONE_LISTE_DEROULANTE_SANS_DOUBLONS

Problématique : je souhaite une liste déroulante sans doublon? Comment faire?

Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.
Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.

Solutions :

Pour commencer , une fonctionnalité moins connue, mais d’autant plus utile, de VBA est l’utilisation de la structure “Dictionnaire” pour stocker les données dans la mémoire de l’ordinateur, c’est ce que nous allons utiliser dans cet exemple.

Cette fonctionnalité permet de contenir de grandes quantités de données disponibles immédiatement à l’utilisation et cette utilisation est particulièrement rapide. En gros, vous n’avez pas besoin de stocker vos données dans les Feuilles – ils sont à votre disposition tant que votre macro tourne.

La structure “Dictionnaire” en question attribue une Valeur à une Clé. De cette manière, il est possible d’aller chercher la Valeur (chaîne de texte, nombre, array,…) en utilisant la Clé.

Deux méthodes sont possibles pour pouvoir utiliser cette structure. Le choix dépend de votre possibilité d’utiliser les Références car la méthode la plus simple requiert la présence de la référence “Microsoft Scripting Runtime“. ALT +F11 / outils / référence :

Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.

Il s’agit d’une des références de base fournies dans chaque installation d’Excel mais qui n’est pas activée par défaut.

Pour pouvoir l’utiliser, vous devez avoir la possibilité de l’activer.

Si ce n’est pas possible, vous pouvez utiliser l’objet Collection qui ne requiert aucune référence supplémentaire, nous verrons cela dans un autre tuto.
Sur MAC, Dictionary n’existe pas. Pour obtenir une liste sans doublons, utiliser Collection

Ensuite créer la combobox via mode création et insérer cette combobox dans active X la feuille en cliquant/déposant:

Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.
Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.
Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.

Méthode 1: Utilisation de Scripting.Dictionary

Pour pouvoir utiliser cette méthode, assurez vous que la référence “Microsoft Scripting Runtime” est activée.

L’utilisation de Dictionnaire n’a de sens que quand elle est utilisée en combinaison avec une boucle qui vous permettra de remplir le Dictionnaire à partir des données (fichier texte, contenu d’un fichier Excel ,plage etc.).

Détail important des fonctionnalités MonDico :

  • MonDico.Count – affiche le nombre de paires clé/valeur dans le Dictionnaire
  • MonDico.Exists(Cle) – vérifie si la clé existe dans le Dictionnaire (retourne True ou False)
  • MonDico.Remove(Cle) – supprime la paire clé/valeur spécifié du Dictionnaire

Code source VBA :

Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.
Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.

Version Youtube :

Tuto :

SUPER CODE :

Pour les cas ou la référence n’est pas activée sur un poste j’ai trouvé ce petit bout de code de Alex qui active la bibliothèque en l’identifiant par son GUID c’est à dire son identifiant normalement unique et commun aux différentes versions d’office. J’ajoute son chargement au démarrage du classeur:

Private Sub Workbook_Open()
Ajoutreference
End Sub
'--------------------------
Public Sub Ajoutreference()
Dim resultat
On Error Resume Next
' Microsoft Scripting Runtime library pour utiliser la fonction dictionnaire "Scripting.dictionary"
resultat = ThisWorkbook.VBProject.References.AddFromGuid("{420B2830-E718-11CF-893D-00A0C9054228}", 1, 0)
On Error GoTo 0
End Sub

Code source VBA :

Excel 2016 : Comment créer une liste déroulante sans doublon sur Excel en moins de 5 min.

Recevoir la newsletter

Inscrivez-vous maintenant et recevez un e-mail les fois où je publie du contenu.

I agree to have my personal information transfered to AWeber ( more information )

Je hais les spams. Vous pouvez vous désinscrire à tout moment.

Pour marque-pages : Permaliens.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *