Liste déroulante Excel : simple, dynamique et en cascade

Une liste déroulante règle en trente secondes le problème le plus banal d’Excel : la saisie libre. Trois personnes remplissent la même colonne, et vous récupérez « Paris », « paris », « PARIS » et « Pris ». Votre tableau croisé dynamique affiche alors quatre villes au lieu d’une, et vous passez la matinée à nettoyer.

La liste déroulante empêche le problème au lieu de le corriger après coup. C’est la différence entre un fichier qu’on subit et un fichier qu’on maîtrise.

Trois niveaux dans cet article, du plus simple à celui qui impressionne en réunion : la liste fixe, la liste dynamique qui s’étend seule, et la liste en cascade où le second choix dépend du premier.

La liste déroulante en trente secondes

Sélectionnez les cellules à contraindre, puis Données → Validation des données → Autoriser : Liste.

Dans le champ Source, deux écritures possibles.

En dur, si les valeurs ne changeront jamais :

Oui;Non;En attente

Le séparateur est le point-virgule sur une configuration française. Réservez cette méthode aux listes de deux ou trois valeurs figées, jamais au-delà.

Par référence, dans tous les autres cas : cliquez dans le champ Source et sélectionnez la plage contenant vos valeurs.

Avant de valider, passez par l’onglet Alerte d’erreur. Par défaut Excel bloque toute saisie hors liste, ce qui est le comportement souhaité dans 90 % des cas. Mais si votre fichier doit accepter des exceptions, basculez le style sur Avertissement : l’utilisateur voit le message et peut passer outre en connaissance de cause.

L’onglet Message de saisie affiche une infobulle au clic sur la cellule. Sur un fichier que d’autres vont remplir, c’est deux minutes de travail qui vous économisent dix mails de questions.

Le fichier d’exercice

Le classeur des deux vidéos est téléchargeable ici : liste simple, liste dynamique et cascade régions/départements, avec la feuille de paramètres apparente.

Rendre la liste dynamique

Le problème de la plage fixe apparaît au premier ajout. Votre source va de A2 à A15, vous ajoutez une valeur en A16, elle n’apparaît pas dans la liste. Il faut rouvrir la validation et redéfinir la plage. À faire quinze fois par an, ça devient pénible.

La solution tient en un raccourci : Ctrl + L.

Convertissez la colonne source en tableau structuré, puis nommez-le dans Création de tableau → Nom du tableau, par exemple T_Villes. Toute ligne ajoutée en bas est automatiquement intégrée au tableau, donc à la liste.

Un détail qui bloque beaucoup de monde : le champ Source de la validation n’accepte pas directement =T_Villes[Ville]. Excel refuse la référence structurée à cet endroit. Il faut passer par un nom défini.

Allez dans Formules → Gestionnaire de noms → Nouveau, nommez-le Liste_Villes, et dans le champ Fait référence à saisissez :

=T_Villes[Ville]

Retournez ensuite dans la validation et écrivez simplement =Liste_Villes dans le champ Source.

Cette étape intermédiaire paraît inutile, elle ne l’est pas : c’est ce qui permet à la liste de s’étendre seule. Faite une fois, elle vous dispense de toute maintenance ultérieure.

Rangez vos listes sources sur une feuille dédiée, nommée Parametres, que vous masquerez une fois le fichier terminé (clic droit sur l’onglet → Masquer). Vos utilisateurs n’ont pas à les voir, et vous saurez toujours où les retrouver.

Les listes en cascade

Le principe : la première liste propose des régions, la seconde ne propose que les départements de la région choisie. C’est ce qu’on appelle une liste dépendante, et le mécanisme repose sur un seul concept.

Le mécanisme

Chaque groupe de valeurs doit porter un nom identique à l’élément de la première liste. Si la première liste contient « Occitanie », il doit exister une plage nommée Occitanie contenant les départements correspondants.

Pour créer ces plages rapidement : sélectionnez le tableau complet en incluant la ligne d’en-tête, puis Formules → Depuis sélection → cochez Ligne du haut. Excel crée d’un coup une plage nommée par colonne, en reprenant l’en-tête comme nom.

La formule

Dans la validation de la seconde cellule, champ Source :

=INDIRECT(B2)

B2 étant la cellule contenant le premier choix. INDIRECT transforme le texte lu dans la cellule en référence de plage : la cellule contient « Occitanie », INDIRECT va chercher la plage nommée Occitanie.

C’est toute l’astuce, et elle tient en une fonction.

Les trois contraintes à connaître

Les noms de plages n’acceptent ni espace ni accent ni tiret. « Nouvelle-Aquitaine » est un nom de plage invalide. Vous devrez soit renommer vos catégories, soit passer par une colonne technique avec les noms nettoyés :

=SUBSTITUE(SUBSTITUE(A2;" ";"_");"-";"_")

Changer le premier choix ne vide pas le second. Vous pouvez vous retrouver avec « Bretagne / Hérault » affiché à l’écran. Aucune formule ne corrige ça — il faut une macro sur l’événement Worksheet_Change, ou accepter le comportement en formant les utilisateurs. Sur un fichier interne, la formation coûte moins cher que la macro.

INDIRECT est une fonction volatile : elle se recalcule à chaque modification du classeur. Sur quelques dizaines de listes, aucun impact. Sur plusieurs milliers de cellules, le fichier devient lent. C’est le seul cas où je conseille de changer d’approche et de passer par une source unique filtrée.

Compléter, verrouiller, diffuser

Une liste déroulante n’est pas une protection. L’utilisateur peut coller une valeur quelconque par-dessus, et Excel l’accepte sans broncher — le collage contourne la validation.

Si le fichier sort de votre bureau, verrouillez : sélectionnez les cellules à laisser modifiables, Ctrl + 1 → onglet Protection → décochez Verrouillée, puis Révision → Protéger la feuille. Toutes les autres cellules deviennent inaccessibles, y compris au collage.

Deux réglages à connaître dans la validation :

Ignorer si vide (coché par défaut) autorise la cellule vide. Décochez-le pour rendre le champ obligatoire.

Appliquer ces modifications aux cellules de paramètres identiques propage un changement de source à toutes les cellules qui partagent la même règle. À cocher quand vous corrigez une liste déjà déployée sur une colonne entière.

Les erreurs les plus fréquentes

Utiliser la virgule comme séparateur dans une source en dur. En configuration française, c’est le point-virgule. La virgule crée une liste d’un seul élément.

Oublier le signe égal devant un nom défini. Liste_Villes sans = est interprété comme une valeur texte unique.

Placer la source sur une autre feuille sans nom défini. Sur les versions anciennes d’Excel, la référence directe à une autre feuille est refusée dans la validation. Le nom défini contourne la limitation, et fonctionne partout.

Des espaces en fin de valeur dans la source. La liste s’affiche correctement, mais les formules qui testent ces valeurs ne trouvent rien. SUPPRESPACE() sur la colonne source, systématiquement, après tout import.

Croire que la liste protège les données. Elle guide la saisie, elle ne l’empêche pas. Seule la protection de feuille bloque réellement.

Questions fréquentes

Comment supprimer une liste déroulante ? Sélectionnez les cellules, Données → Validation des données → Effacer tout. Pour toutes les repérer d’un coup dans une feuille : F5 → Cellules → Validation des données.

Peut-on afficher une image selon le choix de la liste ? Oui, en combinant un nom défini contenant une RECHERCHEV et une image liée. C’est une technique de démonstration, rarement utile en production.

Ma liste déroulante ne s’affiche plus après un copier-coller. Le collage a écrasé la règle de validation. Utilisez Collage spécial → Valeurs pour préserver les règles, et prenez l’habitude de coller ainsi dans tout fichier de saisie.

Comment autoriser plusieurs choix dans une même cellule ? Impossible nativement, il faut du VBA. Dans la majorité des cas, mieux vaut repenser la structure : une ligne par choix, plutôt qu’une cellule contenant plusieurs valeurs. Votre TCD vous remerciera.

La liste fonctionne-t-elle dans Excel Online ? Oui pour la saisie. La création de la validation reste limitée dans la version web, faites-la depuis l’application bureau.