Listes déroulantes en cascade

Bonjour à tous,

Voici un petit cours sur trois façons de créer des listes déroulantes en cascade, il s'agit de listes qui se modifient automatiquement en fonction du choix d'une autre liste.

Ici, en choisissant le type d'aliment, la liste des aliments se modifie automatiquement :

liste_en_cascade_1

liste_en_cascade_2

J'explique chacune des techniques ici :

Et le fichier récapitulatif est disponible ici.

Bon apprentissage.

Gaëtan

Listes déroulantes en cascade - la source est un tableau (3/3)

File:Jonathan's Run Falls.jpgEt dernier volet de notre trilogie sur les listes en cascades.

On va voir ici une technique qui permet de considérer une table récapitulative de toutes les listes comme étant la source des données.

Cliquez ici pour accéder au fichier de la formation.

ATTENTION, cette technique ne fonctionne que si la table est triée sur la première liste (ici Domaine de formation), et si possible, on préférera les deux autres techniques. Je pense cependant que cette approche peut s'avérer utile dans certains cas.

Supposons donc que pour une raison inconnue ;-), la liste se présente sous cette forme :

On va gérer à part la liste des domaines de formation, comme fait dans le premier épisode :

Définition du nom :

Ajout de la liste via la validation des données :

On va ensuite gérer la liste dynamique basée sur le choix du domaine de formation :

excel-listes-deroulantes-en-cascades

On va ensuite utiliser cette très jolie formule que l'on mettra dans la validation des données de la plage B6

=DECALER(Liste!$B$1;EQUIV($B$3;Liste!$A:$A;0)-1;0;NB.SI(Liste!$A:$A;B3);1)

Qui se lit de la manière suivante :

- DECALER : renvoit la plage

- Liste!$B$1 : démarrant en B1 dans la feuille Liste

- EQUIV($B$3;Liste!$A:$A;0)-1 : Calculer ensuite la ligne de la première occurence de la cellule B3, moins une cellule pour la ligne de titre. En combinant avec DECALER, on va donc renvoyer la première cellule de la plage.

- NB.SI(Liste!$A:$A;B3) : calculer le nombre de fois où B3 est présent dans la liste, de fait, on va retourner la hauteur de la liste

- On combine le tout pour renvoyer la plage contenant la liste et on ajoute à la validation des données :

Et c'est fini !

A bientôt

Gaetan

-

Listes déroulantes en cascade - gérer des noms longs avec espaces (2/3)

800px-BurneyFallsDeuxième épisode de la série sur les fantastiques listes déroulantes en cascades !

Dans l'épisode précédent, on a vu comment créer des listes en cascades. On va reprendre ici le même principe, mais pour gérer des listes contenant des espaces.

Cliquez ici pour accéder au fichier de la formation.

Par exemple, supposons que gériez un centre de formation et que vous vouliez choisir un domaine de formation, qui va ensuite nous donner une liste de formation possible.

Les domaines de formation étant un peu complexes, vous allez avoir des noms comme :

- Formation de base sur Excel

- Formation avancée sur Excel

Et ensuite, on va retrouver un certain nombre de formations pour chaque domaine.Le but étant d'arriver à ceci :

Le problème est que la fonction Indirect ne pourra pas lire ces noms de domaine, car ils contiennent des espaces.

Une solution possible consiste donc à ajouter dans la liste des domaines, le nom du domaine sous la forme d'un code, ce qui permettra de s'y retrouver.

1/ On aura ainsi la table suivante :

2/ Il faut ensuite à ajouter les noms F_Base_Excel et F_Avancee_Excel au fichier pour les types de formation, ici pour F_Base_Excel :
Sélectionnez E2:A4, dans la zone de noms, tapez F_Base_Excel et validez par entrée.
De même pour la plage G2:G4.

Et ici pour F_Avancee_Excel

3/ On va ensuite ajouter une formule un peu complexe qui va permettre de retourner le code formation, qu'on utilise ensuite dans une formule indirect pour la suite.

Et la formule est la suivante pour la cellule D3 (avec Liste étant le nom de la feuille contenant les listes de départ):

=INDIRECT(INDEX(Liste!$B$2:$B$3;EQUIV(C3;Liste!$A$2:$A$3;0);1))

4/ Vous pouvez donc maintenant utiliser un nom complet avec des espaces pour ensuite changer la liste des formations appartenant à ce domaine.

A bientôt pour le 3e épisode!

Gaëtan