ElyxAI
validation

Comment Créer une liste déroulante à plusieurs niveaux

Excel 2016Excel 2019Excel 365Excel 2021

Apprenez à créer des listes déroulantes en cascade où les sélections dans une cellule remplissent automatiquement les options dans une autre. Cette technique de validation avancée crée des listes dépendantes idéales pour organiser les données hiérarchiquement, comme sélectionner un pays, puis une région, puis une ville.

Pourquoi c'est important

Les listes déroulantes à plusieurs niveaux réduisent les erreurs de saisie, rationalisent les flux de travail et créent des feuilles de calcul professionnelles et conviviales.

Prérequis

  • Compréhension de la validation de données de base (Données > Validité)
  • Familiarité avec les plages nommées ou la fonction INDIRECT
  • Connaissance de l'organisation des données sources en colonnes séparées

Instructions étape par étape

1

Organisez les données source par catégorie

Créez un tableau de référence avec les catégories principales dans une colonne et les sous-catégories dans les colonnes adjacentes (ex : Colonne A : Région, Colonne B : Pays dans cette région).

2

Créez des plages nommées pour chaque catégorie

Sélectionnez vos données de catégorie principale, allez à Formules > Définir un nom, nommez-la (ex : 'Régions'). Répétez pour chaque colonne de sous-catégorie.

3

Configurez la première liste déroulante

Cliquez sur la cellule de la liste déroulante principale, allez à Données > Validité, définissez Autoriser sur 'Liste', et entrez votre plage nommée (ex : =Régions). Cliquez OK.

4

Créez la liste déroulante dépendante avec INDIRECT

Cliquez sur la cellule de la deuxième liste, allez à Données > Validité, définissez Autoriser sur 'Liste', et entrez =INDIRECT(A1) où A1 est votre première cellule de liste déroulante.

5

Testez et affinez vos listes déroulantes

Cliquez sur chaque liste pour vérifier que les sélections déclenchent les options dépendantes appropriées. Ajustez les plages nommées si nécessaire.

Méthodes alternatives

Utiliser INDEX et MATCH au lieu de INDIRECT

Remplacez INDIRECT par =INDEX(PlageNommée,MATCH(A1,PlageRecherche,0)) pour plus de contrôle sur les scénarios complexes.

Utiliser Power Query ou des tableaux

Pour Excel moderne, structurez les données sous forme de tableaux et utilisez Power Query pour créer des relations dynamiques.

Approche VBA Macro

Les utilisateurs avancés peuvent automatiser les listes en cascade en utilisant des gestionnaires d'événements VBA.

Astuces et conseils

  • Utilisez des conventions de nommage cohérentes pour les plages nommées (ex : 'Région_Europe') pour garder les formules claires.
  • Incluez toujours une gestion des erreurs en définissant l'option 'Afficher une erreur' pour avertir les utilisateurs.
  • Triez les données source alphabétiquement pour rendre les sélections plus intuitives.
  • Testez avec des cellules vides pour vous assurer que les listes déroulantes gèrent bien les cas limites.

Astuces avancées

  • Imbriquez trois niveaux ou plus en utilisant INDIRECT avec des références de cellule enchaînées : =INDIRECT(B1) pour le niveau 3.
  • Utilisez le message d'entrée de Validité pour afficher des instructions utiles aux utilisateurs.
  • Envisagez les formules OFFSET et COCOUNT pour un dimensionnement dynamique des listes.
  • Verrouillez votre feuille de données de référence pour éviter les modifications accidentelles aux données source.

Résolution de problèmes

La liste déroulante dépendante affiche #REF! ou reste vide

Vérifiez que la plage nommée référencée dans INDIRECT existe dans Formules > Gestionnaire de noms et correspond exactement à la valeur de la cellule. Vérifiez que la première liste déroulante contient une sélection valide.

La formule INDIRECT fonctionne mais affiche toutes les options au lieu de filtrer

Assurez-vous que la structure des données source correspond à la logique de la formule—si vous utilisez =INDIRECT(A1), la sélection de la colonne A doit correspondre à une plage nommée couvrant uniquement les sous-catégories pertinentes.

La liste déroulante s'affiche correctement mais ne copie pas aux autres lignes

Utilisez des références de cellule relatives dans INDIRECT (A1, pas $A$1) afin que les formules s'ajustent automatiquement lors de la copie.

Un message d'erreur apparaît même avec des sélections valides

Vérifiez les paramètres de Validité : assurez-vous que 'Autoriser' est défini sur 'Liste' et que la formule ou la plage est correcte.

Formules Excel associées

Questions fréquentes

Puis-je créer plus de 2 niveaux de listes déroulantes en cascade?
Oui, vous pouvez créer des niveaux illimités en enchaînant les formules INDIRECT. Pour un troisième niveau, utilisez =INDIRECT(B1) dans la troisième liste déroulante, où B1 dépend de A1. Chaque niveau référence la sélection précédente pour filtrer davantage.
Quelle est la différence entre les plages nommées et INDIRECT?
Les plages nommées définissent des plages de données statiques (ex : 'Régions' = A2:A10), tandis que INDIRECT convertit dynamiquement les valeurs de cellule en références de plage. INDIRECT active la logique en cascade en référençant les plages nommées selon les sélections des utilisateurs.
Pourquoi ma formule INDIRECT retourne-t-elle l'erreur #REF!?
Cela signifie généralement que la valeur de la cellule ne correspond pas exactement au nom d'une plage nommée. Si A1 contient 'Europe' mais votre plage nommée est 'Europe ' (avec un espace), INDIRECT ne la trouvera pas. Vérifiez les noms exacts dans Gestionnaire de noms.
Puis-je utiliser des listes déroulantes à plusieurs niveaux avec des tableaux Excel?
Oui, l'Excel moderne supporte les références structurées dans les règles de validation. Créez des tableaux pour vos données source et utilisez =INDIRECT(A1) pointant vers un nom de colonne de tableau.
Comment empêcher les utilisateurs de modifier les données source des listes déroulantes?
Verrouillez la feuille de données de référence en allant à Révision > Protéger la feuille, puis déplacez les données source vers une feuille masquée ou en lecture seule. Cela prévient les modifications accidentelles.

C'etait une tache. ElyxAI en gere des centaines.

S'inscrire