Listes déroulantes dépendantes Excel
Une liste déroulante simple, c'est facile. Mais quand le contenu d'une deuxième liste doit dépendre du choix fait dans la première (par exemple : sélectionnez un pays, puis seules les villes de ce pays apparaissent), il faut une technique appelée « listes dépendantes » ou « listes conditionnées ». Ce guide vous présente les 3 méthodes possibles, avec leurs cas d'usage.
💡 Qu'est-ce qu'une liste déroulante dépendante ?
C'est une validation de données dont le contenu change automatiquement en fonction de la valeur sélectionnée dans une autre cellule. Exemples typiques :
- Pays → Ville : sélectionnez France → la 2ème liste propose Paris, Lyon, Marseille…
- Catégorie → Sous-catégorie : sélectionnez Électronique → propose Téléphones, Ordinateurs, TV…
- Service → Collaborateur : sélectionnez Marketing → propose Marie, Karim, Léa…
L'utilisateur voit moins de choix, plus pertinents, et les erreurs de saisie chutent drastiquement.
👉 Essayez le mécanisme ci-dessous : saisissez un pays (par exemple France, Belgique, Suisse ou Canada), la liste déroulante de droite ne propose alors que les villes correspondantes. C'est exactement le comportement obtenu dans Excel avec une validation de données dépendante.
📋 Données source utilisées par la démo (cliquez pour voir)
| Pays | Villes disponibles |
|---|---|
| France | Paris, Lyon, Marseille, Bordeaux, Toulouse |
| Belgique | Bruxelles, Anvers, Gand, Liège |
| Suisse | Genève, Zurich, Lausanne, Bâle |
| Canada | Montréal, Toronto, Vancouver, Québec |
À retenir : les listes dépendantes améliorent la qualité de la saisie et la lisibilité du fichier. C'est l'un des plus puissants effets « waouh » qu'on peut obtenir avec Excel sans formation lourde.
📋 Prérequis : maîtriser la validation de données simple
Avant de plonger dans les listes dépendantes, assurez-vous de savoir créer une liste déroulante basique :
- Sélectionnez la cellule cible
- Données → Validation des données → Liste
- Source :
=$A$2:$A$10ou directementParis;Lyon;Marseille
1️⃣ Méthode 1 — INDIRECT + plages nommées (classique)
La méthode historique, fonctionne sur TOUTES les versions d'Excel.
Étape 1 — Préparer les données
Créez une feuille « Listes » avec une colonne par pays :
| France | Espagne | Italie |
|---|---|---|
| Paris | Madrid | Rome |
| Lyon | Barcelone | Milan |
| Marseille | Séville | Naples |
| Bordeaux | Valence | Turin |
Étape 2 — Créer les plages nommées
Sélectionnez chaque colonne (uniquement les villes, sans l'entête) :
- Sélectionnez la colonne France, dans la zone Nom (à gauche de la barre de formule) tapez
France+ Entrée - Idem pour Espagne et Italie
Vérifiez via Formules → Gestionnaire de noms.
Étape 3 — Première liste (pays)
Sur votre feuille de saisie, cellule A2 :
- Données → Validation des données → Liste
- Source :
=France;=Espagne;=Italieou plus simple, créer une plage nommée « Pays » contenant les entêtes
Étape 4 — Deuxième liste (villes, dépendante)
Cellule B2 :
- Données → Validation des données → Liste
- Source :
=INDIRECT(A2)
Magique : selon ce qui est sélectionné en A2, INDIRECT pointe vers la plage nommée correspondante. France → liste France, Italie → liste Italie.
Limites de cette méthode
- Les noms de pays ne doivent pas contenir d'espaces ni de caractères spéciaux (sinon INDIRECT échoue)
- Si vous renommez un pays, il faut renommer la plage
- L'ajout d'un nouveau pays demande de créer une nouvelle plage nommée
2️⃣ Méthode 2 — DECALER + tableau structuré (dynamique)
Plus moderne, gère mieux les listes qui évoluent.
Étape 1 — Tableau de référence
Sur la feuille Listes, un tableau structuré nommé « Catalogue » :
| Pays | Ville |
|---|---|
| France | Paris |
| France | Lyon |
| Espagne | Madrid |
| Espagne | Barcelone |
Étape 2 — Liste pays (sans doublons)
Première liste : alimentée par UNIQUE.
Sur une feuille auxiliaire, en E1 : =TRIER(UNIQUE(Catalogue[Pays])). Vous obtenez la liste sans doublons des pays.
Sur la cellule de saisie A2, validation de données → Liste → Source : =$E$1# (le # désigne le tableau déversé).
Étape 3 — Liste villes dépendante
Sur la feuille auxiliaire, en F1 : =FILTRE(Catalogue[Ville]; Catalogue[Pays]=A2).
Sur B2, validation de données → Liste → Source : =$F$1#.
Avantage
Quand vous ajoutez un nouveau pays + ville dans le catalogue, les listes s'actualisent automatiquement. Aucune maintenance de plages nommées.
Inconvénient
Nécessite Excel 365 ou 2021 (pour FILTRE et UNIQUE).
3️⃣ Méthode 3 — Tableau croisé dynamique en source
Solution intermédiaire pour Excel 2019. Plus complexe mais robuste.
Principe
Créez un TCD avec les pays en lignes. Pour chaque pays, créez une zone qui liste les villes via formule DECALER avec NB.SI pour dimensionner.
🛠️ Tutoriel : configurer une triple liste (Pays → Région → Ville)
Le cas avancé : 3 niveaux de dépendance.
Étape 1 — Données sources
Un tableau Catalogue avec colonnes Pays, Région, Ville.
Étape 2 — Liste Pays
=TRIER(UNIQUE(Catalogue[Pays]))
Étape 3 — Liste Région (dépendante du pays)
=TRIER(UNIQUE(FILTRE(Catalogue[Région]; Catalogue[Pays]=A2)))
Étape 4 — Liste Ville (dépendante de la région)
=TRIER(UNIQUE(FILTRE(Catalogue[Ville]; (Catalogue[Pays]=A2)*(Catalogue[Région]=B2))))
L'opérateur * entre conditions = ET logique.
📌 Exemple concret : formulaire de saisie de commande
Vous créez un formulaire commercial où l'utilisateur sélectionne :
- Catégorie produit (Téléphones, Ordinateurs, Accessoires)
- Marque (filtrée selon la catégorie)
- Modèle (filtré selon la marque)
Avec les 3 listes dépendantes, l'utilisateur ne peut pas saisir « iPhone 15 » dans la catégorie « Accessoires ». Cohérence garantie, erreurs éliminées.
⚠️ Erreurs fréquentes
1. La liste B2 ne se met pas à jour après modification de A2
Vérifiez le mode de calcul (Formules → Options de calcul → Automatique). Si vous êtes en manuel, F9 force le recalcul.
2. #NOM? sur INDIRECT
La plage nommée n'existe pas. Vérifiez :
- Le pays sélectionné en A2 correspond exactement à un nom de plage
- Pas d'espaces dans les noms (« Royaume Uni » ne marche pas, écrivez « RoyaumeUni » ou « Royaume_Uni »)
3. La liste B2 garde l'ancienne valeur après changement de A2
Excel ne supprime pas automatiquement les valeurs invalides. Solution : ajoutez une macro VBA qui vide B2 quand A2 change, ou utilisez une mise en forme conditionnelle pour signaler l'incohérence.
4. Les caractères spéciaux cassent INDIRECT
« Côte d'Ivoire » avec apostrophe ne marche pas. Préférez la méthode 2 (FILTRE) qui gère tous les caractères.
5. Performances dégradées sur de grandes listes
Si votre catalogue a 10 000 lignes, la formule FILTRE recalcule à chaque changement. Solution : précalculez les listes dans des cellules cachées dont la formule ne se déclenche qu'à la demande.
✅ Bonnes pratiques
Centraliser la source dans un onglet dédié
Une feuille « Référentiel » avec tous les tableaux de base. Facilite la maintenance et évite les références éparpillées.
Documenter les plages nommées
Dans le gestionnaire de noms, ajoutez un commentaire à chaque nom : « Liste des pays utilisée par le formulaire commande ». Aide vos successeurs.
Tester systématiquement les cas limites
Cellule A2 vide, valeur erronée, valeur supprimée du référentiel. Comment réagit B2 ? Anticipez.
Combiner avec une macro de remise à zéro
Un bouton « Réinitialiser » qui vide toutes les cellules dépendantes en une fois. Pratique pour les formulaires utilisés en boucle.
Protéger la feuille référentiel
Évitez qu'un utilisateur modifie accidentellement vos listes sources. Révision → Protéger la feuille.
⚖️ Comparaison des méthodes
| Critère | INDIRECT + nommées | FILTRE (365) |
|---|---|---|
| Compatibilité | Toutes versions | 365 / 2021 |
| Maintenance | Manuelle (créer un nom par catégorie) | Automatique |
| Caractères spéciaux | Non supportés | Supportés |
| Ajout dynamique d'une catégorie | Nécessite de créer une plage | Automatique |
| Triple dépendance | Possible mais complexe | Simple |
❓ FAQ : listes déroulantes dépendantes
Comment vider automatiquement la 2ème liste quand on change la 1ère ?
Réponse : il faut une macro VBA sur l'événement Worksheet_Change. Excel natif ne le fait pas.
Peut-on faire dépendre la 3ème liste de la 1ère ET de la 2ème ?
Réponse : oui, avec FILTRE en combinant les critères : FILTRE(Plage; (Pays=A2)*(Région=B2)).
Comment créer une liste avec des libellés et des codes ?
Réponse : la liste déroulante affiche un libellé, mais une formule RECHERCHEV à côté traduit en code. Concrètement : la liste affiche « Paris (75) », et vous extrayez le code avec STXT.
La liste peut-elle inclure des valeurs de plusieurs feuilles ?
Réponse : oui, en créant une plage nommée qui combine plusieurs plages (notation =Feuil1!A:A;Feuil2!A:A).
Comment exporter le résultat d'une saisie en PDF ?
Réponse : Fichier → Exporter → Créer un PDF. Définissez d'abord la zone d'impression sur la zone du formulaire.
Comment empêcher l'utilisateur de saisir librement (forcer la liste) ?
Réponse : dans la validation des données, onglet Alerte d'erreur → Type : Stop. Excel refusera toute saisie hors liste.
Peut-on avoir une liste recherchable au lieu de déroulante ?
Réponse : Excel 365 propose maintenant une recherche dans les listes longues. Sinon, utilisez Power Apps ou un contrôle ActiveX ComboBox.
Comment partager le fichier avec listes dépendantes ?
Réponse : aucune particularité, le fichier marche partout (sauf si vous utilisez des fonctions 365 et le destinataire est sur Excel 2019).
🏁 Conclusion
Les listes déroulantes dépendantes transforment un formulaire Excel approximatif en outil de saisie fiable et rapide. La méthode INDIRECT reste un classique solide ; la méthode FILTRE est plus moderne et plus puissante mais nécessite Excel 365.
Pour un fichier interne sur Microsoft 365, optez pour FILTRE sans hésitation. Pour un fichier partagé avec des utilisateurs sur Excel plus ancien, INDIRECT reste la solution universelle. Dans les deux cas, le bénéfice utilisateur est immédiat : moins d'erreurs, plus de cohérence, expérience de saisie professionnelle.