Excel créer un menu déroulant : la méthode simple pour une liste dynamique

Excel créer un menu déroulant : la méthode simple pour une liste dynamique

Sommaire

Les listes déroulantes sont un moyen simple et puissant d’améliorer la qualité des saisies dans Excel. Elles limitent les erreurs, accélèrent la saisie et rendent les feuilles de calcul plus lisibles. Ce guide détaillé explique comment créer des listes déroulantes basiques, dynamiques et dépendantes, et présente des solutions pour des besoins avancés comme la sélection multiple ou l’autocomplétion. Les explications tiennent compte des différences entre versions modernes d’Excel et versions plus anciennes.

1. Création d’une liste déroulante simple

Étapes rapides pour une liste statique :

  1. Préparez vos éléments de liste dans une colonne sur une feuille dédiée, par exemple A2:A10.
  2. Sélectionnez la cellule où vous voulez la liste.
  3. Allez dans l’onglet Données puis Validation des données.
  4. Choisissez Liste comme critère et sélectionnez la plage contenant vos éléments.
  5. Cochez ou décochez l’option Autoriser les entrées en dehors de la liste selon vos besoins.

Avantage : mise en place rapide. Inconvénient : la plage ne s’actualise pas automatiquement si vous ajoutez de nouveaux éléments en dehors de la plage définie.

2. Utiliser une Table Excel pour une source qui s’actualise

Transformer la plage en Table rend la liste auto-actualisable :

  1. Sélectionnez la plage contenant les éléments et appuyez sur Ctrl+T pour créer une Table.
  2. Donnez un nom à la colonne ou à la Table via Outils de tableau > Propriétés ou via le Gestionnaire de noms.
  3. Dans Validation des données, utilisez la référence structurée de la Table comme source, par exemple =Table1[Liste].

Chaque ajout à la Table est automatiquement pris en compte dans la liste déroulante. Cette méthode est recommandée pour des listes en constante évolution et pour des fichiers partagés.

3. Listes dynamiques avec formules

Si vous disposez d’Excel 365 ou d’une version comportant les fonctions dynamiques, utilisez UNIQUE et FILTER pour créer une source qui élimine les doublons et trie ou filtre en temps réel :

  • UNIQUE(plage) retourne une liste sans doublon.
  • FILTER(plage; condition) permet de n’afficher que les éléments répondant à une condition.
  • Combiner SORT(UNIQUE(plage)) pour trier la liste automatiquement.

Sur des versions plus anciennes, utilisez OFFSET ou une plage nommée dynamique avec la fonction DECALER pour définir une plage qui s’adapte à la taille des données. Exemple de nom défini utilisant une formule : =DECALER(Feuil1!$A$2;0;0;NBVAL(Feuil1!$A:$A)-1;1)

4. Listes déroulantes dépendantes

Les listes dépendantes changent leurs options selon la sélection d’une autre liste. Méthode classique :

  1. Créez une liste principale (par ex. Catégories).
  2. Créez une plage distincte pour chaque catégorie contenant ses sous-éléments et nommez chaque plage exactement comme le libellé de la catégorie. Par exemple, si la catégorie est Fruits, nommez la plage Fruits.
  3. Dans la cellule de la liste secondaire, utilisez Validation des données et comme source écrivez =INDIRECT(CelluleAvecCategorie).

Remarque : INDIRECT fonctionne bien sur desktop mais peut poser problème en ligne ou avec des noms contenant des espaces. Dans ce cas, utilisez des noms de plage sans espaces ou employez des formules plus modernes basées sur FILTER si disponibles.

5. Sélection multiple : solutions sans et avec VBA

Excel ne gère pas nativement la sélection multiple dans une cellule via une liste déroulante. Deux approches :

Sans VBA

On peut simuler la sélection multiple en utilisant plusieurs colonnes ou cellules et ensuite concaténer les valeurs via une formule. C’est simple mais moins ergonomique.

Avec VBA

Sur Excel desktop, un petit script en VBA permet d’ajouter ou retirer des éléments lorsqu’un utilisateur choisit dans la liste. Exemple minimal à placer dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range) Dim Cellule As Range If Intersect(Target, Range("B2:B20")) Is Nothing Then Exit Sub Application.EnableEvents = False For Each Cellule In Intersect(Target, Range("B2:B20")) If Cellule.Validation.Type = 3 Then If InStr(1, Cellule.Value, ";") = 0 Then ' Premier élément choisi End If ' Exemple simple : ajouter la valeur choisie à la fin en séparant par ; si non déjà présent Dim ancienne As String ancienne = Cellule.Value ' logiques d'ajout/suppression à personnaliser End If Next Cellule Application.EnableEvents = TrueEnd Sub 

Ce code est un point de départ et demande d’être adapté pour gérer les cas d’usage, suppression d’éléments et espaces. Sauvegardez toujours avant de tester des macros.

6. Autocomplétion et ergonomie

Excel propose l’autocomplétion dans les plages saisies directement mais pas directement dans la liste déroulante avant la sélection. Pour améliorer l’ergonomie :

  • Utilisez des listes triées pour accélérer la recherche visuelle.
  • Combinez la validation de données avec le filtrage dynamique sur une zone déroulante simulée (contrôle ActiveX ou formulaire), si vous souhaitez une recherche instantanée.
  • Ajoutez une info-bulle via Commentaire ou Validation des données pour guider l’utilisateur.

7. Bonnes pratiques et dépannage

Quelques conseils pour éviter les erreurs courantes :

  • Placez les sources de listes sur une feuille dédiée et protégez-la pour éviter les modifications accidentelles.
  • Nommez vos plages de manière cohérente et sans espaces, surtout si vous utilisez INDIRECT.
  • Testez votre configuration sur une copie du fichier avant déploiement.
  • Si une liste ne s’affiche pas, vérifiez que la cellule n’est pas formatée en texte et que la validation des données pointe vers la bonne plage.
  • Pour des fichiers partagés ou en ligne, privilégiez les Tables ou les fonctions compatibles avec Excel Online.

Les listes déroulantes vont du très simple au très sophistiqué. Pour la plupart des usages, une Table nommée offre un excellent compromis entre simplicité et maintenance. Pour des besoins avancés, les fonctions dynamiques modernes facilitent la création de listes automatiques et filtrées. Enfin, pour la sélection multiple ou des comportements personnalisés, le VBA reste la solution la plus flexible sur desktop. Adaptez la méthode à votre version d’Excel, testez sur une copie et documentez la feuille pour les utilisateurs.

Questions fréquentes

Comment créer un menu déroulant dans une cellule Excel ?

Pour créer un menu déroulant dans une cellule Excel, commencez par saisir les entrées sur une zone dédiée de la feuille, ou sur une autre feuille pour éviter le bruit. Sélectionnez la cellule cible, puis rendez, vous à l’onglet Données et ouvrez Validation des données, choisissez Liste comme critère et pointez sur la plage contenant les options. Activez la case, ignorer cellules vides si besoin, et cochez Liste déroulante dans la cellule. Astuce, utilisez des noms définis pour rendre la référence dynamique. C’est simple, fiable, et ça change l’ergonomie du fichier sans script inutile. Gagnez en contrôle, cohérence et rapidité.

Comment créer une liste déroulante à choix multiple dans Excel ?

Excel ne propose pas nativement une liste déroulante à choix multiple dans une cellule, hélas. Pour obtenir cet effet, deux voies courantes, accepter une macro VBA qui capte Worksheet Change et concatène les sélections avec une virgule, ou repenser l’UX en utilisant une colonne auxiliaire de cases à cocher ou un formulaire utilisateur. La solution VBA offre la meilleure intégration, mais attention aux macros et à la sécurité, testez sur une copie. Si l’environnement bloque les macros, envisagez Power Apps ou une grille avec filtres. Le choix dépend de la gouvernance et de la fréquence d’usage pour vos équipes internes.

Comment créer une liste déroulante sur toute une colonne dans Excel ?

Pour étendre une liste déroulante à toute une colonne, commencez par définir la source, idéalement sur une autre feuille ou via un nom défini pour éviter les erreurs. Sélectionnez la plage ou cliquez sur l’en, tête de colonne pour cibler la colonne, ouvrez l’onglet Données puis Validation des données, choisissez Liste comme critère et indiquez la référence nommée ou la plage. Ne modifiez pas les critères par défaut si l’objectif est la simplicité. Pour que la liste suive les ajouts, convertissez la source en tableau ou utilisez une plage dynamique. Ainsi, chaque nouvelle cellule hérite automatiquement de la validation facilement.

Comment créer un filtre avec une liste déroulante sur Excel ?

Pour créer un filtre avec une liste déroulante sur Excel, sélectionnez la plage ou le tableau et appuyez sur Ctrl+Maj+L, Excel ajoute un menu déroulant Filtre automatique à la cellule de chaque colonne. Dans l’en, tête de la colonne à filtrer, appuyez sur Alt+Flèche bas pour ouvrir le menu et choisir les critères, pratique pour trier ou isoler des valeurs. Avec des tableaux, les filtres sont persistants et compatibles avec les segments ou slicers si besoin. Si accessibilité requise, le Narrateur décrit le menu, et pour des critères complexes, préférez le Filtre avancé ou une colonne auxiliaire avec logique métier.

Partager sur

Articles récents