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)
PaysVilles disponibles
FranceParis, Lyon, Marseille, Bordeaux, Toulouse
BelgiqueBruxelles, Anvers, Gand, Liège
SuisseGenève, Zurich, Lausanne, Bâle
CanadaMontré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 :

  1. Sélectionnez la cellule cible
  2. Données → Validation des données → Liste
  3. Source : =$A$2:$A$10 ou directement Paris;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 :

FranceEspagneItalie
ParisMadridRome
LyonBarceloneMilan
MarseilleSévilleNaples
BordeauxValenceTurin

É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 :

  1. Données → Validation des données → Liste
  2. Source : =France;=Espagne;=Italie ou plus simple, créer une plage nommée « Pays » contenant les entêtes

Étape 4 — Deuxième liste (villes, dépendante)

Cellule B2 :

  1. Données → Validation des données → Liste
  2. 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 » :

PaysVille
FranceParis
FranceLyon
EspagneMadrid
EspagneBarcelone

É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 :

  1. Catégorie produit (Téléphones, Ordinateurs, Accessoires)
  2. Marque (filtrée selon la catégorie)
  3. 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èreINDIRECT + nomméesFILTRE (365)
CompatibilitéToutes versions365 / 2021
MaintenanceManuelle (créer un nom par catégorie)Automatique
Caractères spéciauxNon supportésSupportés
Ajout dynamique d'une catégorieNécessite de créer une plageAutomatique
Triple dépendancePossible mais complexeSimple

❓ 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.

Tutoriel INDIRECT Tutoriel RECHERCHEX