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

Listes déroulantes en cascade – Introduction (1/3)

450px-Cascades_d'OuzoudBonjour à tous,

La création de listes en cascade permet de gérer une liste déroulante qui se modifie en fonction du choix d'une autre liste déroulante.

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

Par exemple, vous voulez choisir une marque de voitures pour ensuite accéder aux modèles correspondants, ou encore vous voulez choisir un type d'aliment pour ensuite aller à la liste des aliments correspondants :

Choix des fruits :

liste_en_cascade_1

Choix des légumes :

liste_en_cascade_2

Ces listes dynamiques en cascade se créent de la manière suivante :

1/ Créez trois listes dans une feuille séparée. La première liste va avoir les items suivants : Fruits et légumes. Puis, la liste détaillée des fruits, puis la liste des légumes.

2/ Nommez chacune des listes (à gauche de la zone de formule, vous avez la zone de nom), idéalement après avoir défini un tableau par liste. Par exemple, la liste des fruits est nommées Fruits et la liste des légumes est nommée Légumes. Ça nous donne ceci:

liste_type_aliments

3/ Dans une nouvelle feuille, par exemple en A2, choisissez la première liste, via Données - Validation - Liste et en mettant la référence correspondante (ici Type_Aliments). Donc, vous aurez une liste avec le choix Fruits, Légumes.

4/ Dans une autre cellule qui va recevoir le choix du produit, choisissez Données - Validation - Liste, et tapez =INDIRECT(A2). La fonction indirect va renvoyer la plage nommée correspondant à A1, donc la plage Fruits ou la plage Légumes.

liste-dynamiques-donnees-validation-indirect

C'est fini !

Gaëtan