Excel - Liste déroulante conditionnelle

Résolu/Fermé
cyrilounet - 5 févr. 2008 à 19:14
 Vitcthor - 7 juil. 2016 à 12:04
Bonsoir,

Je voudrais arriver à créer sous Excel une liste déroulante dont le contenu affiché serait fonction de la valeur de la cellule d'avant (qui est elle-même une liste déroulante).

Pour être plus clair, j'ai une liste de services Liste_Services (Service 1, Service 2, Service n...) dans une cellule. Cette liste, je l'ai faite depuis le menu "Données / Validation". Je souhaiterais dans la cellule suivante qu'apparaisse une liste d'items qui correspondent au service sélectionné.

En gros, j'ai sur une feuille Excel (feuille A) le tableau suivant :

  |      A    |      B     |     C     |     D     |     E        
1 |           | Service 1  | Service 2 | Service 3 | Service n 
2 | Service 1 |  Item B2   |  Item C1  |  Item D1  | Item E1
3 | Service 2 |  Item B3   |  Item C2  |  Item D2  | Item E2 
4 | Service 3 |  Item B4   |  Item C3  |  Item D3  | Item E3
5 | Service n |  Item Bn   |  Item Cn  |  Item Dn  | Item En


Dans une autre feuille (feuille B), j'ai (de manière simplifiée) les cellules suivantes :

 Liste_Services | Liste_Item


Une fois le service sélectionné dans cette feuille, je souhaiterais que la liste Liste_Item s'affiche en fonction du choix effectué (c'est-à-dire en focntion de Liste_Services). Si je sélectionne le Service 2, je voudrais que seule la liste de services Service 2 (colonne C de la feuille A ) s'affiche.

Je ne sais pas trop comment faire à ce niveau. Les listes sont définies.

J'espère avoir exposé assez clairement le problème que j'ai pour que quelqu'un me dépatouille.

Un grand merci d'avance à celui ou celle (ne soyons pas sexiste) qui m'aidera à résoudre ce soucis.

Cordialement.
A voir également:

39 réponses

Salut,

En fait, j'ai créé mes listes dans une feuille (Feuille_Liste), comme suit :

  |     A     |     B     |     C     |      D    |     E
1 | | Service 1 | Service 2 | Service 3 | Service n
2 | Service 1 | Symp. 1_1 | Symp. 2_1 | Symp. 3_1 | Symp. n_1
3 | Service 2 | Symp. 1_2 | Symp. 2_2 | Symp. 3_2 | Symp. n_2
4 | Service 3 | | Symp. 2_3 | Symp. 3_3 | Symp. n_3
5 | Service n | | Symp. 2_n | | Symp. n_n


J'ai ensuite nommé chaque liste :
- listeServices pour B1:E1
- ERR_liste1 pour B2:B3
- ERR_liste2 pour C2:C5
- ERR_liste3 pour D2:D4
- ERR_listen pour E2:E5

Dans ma feuille principale (Feuille1), dans la cellule où je voulais afficher ma première liste (E2 par exemple), j'ai créé une liste comme suit :
- menu Données / Validation ;
- dans la partie "autoriser", j'ai sélectionné "Liste" ;
- dans la partie "Source", j'ai mis la formule suivante : =listeServices puis OK.

Dans la cellule suivante F2 (cellule dont l'affichage dépend du choix de la cellule précédente), j'ai procédé comme suit :
- menu Données / Validation ;
- dans la partie "autoriser", j'ai positionné sur "Liste" ;
- dans la partie "Source", j'ai mis la formule suivante : =INDIRECT("ERR_"&(RECHERCHE(E2;listeServices)))

Et le tour est joué (si je n'ai rien oublié). Si tu as besoin de plus d'explication, ou d'aide, n'hésite pas ;-)

Cordialement
56
Bonjour,
Je me suis penché sur les formules de Cyrilounet.
je les ai mis en application car une liste déroulante qui dépend d'une autre allégerait le travail sur des fichiers excel.

Si j'ai mis en route la 1ère liste avec la formule suivante : =listeServices puis OK., celle -ci fonctionne.

La 2° liste ne donne aucun résultat. et je vois bien que c'est normal car il n'est pas utilisé les noms des colonnes du tableau de données à savoir :
- ERR_liste1 pour B2:B3
- ERR_liste2 pour C2:C5
- ERR_liste3 pour D2:D4
- ERR_listen pour E2:E5


Bref la formule =INDIRECT("ERR_"&(RECHERCHE(F2;listeServices))) semble incomplète.

Bref y vois-tu une possibilité ?
En ce qui me concerne, ces formules m'apprennent les profondeurs d'excel et vont me permettre de les adpater à d'autres données...
Merci d'avance de repencher sur tes formules.
Cordialement
0
re bonsoir
Mea culpa
Comme tous les messages précédents.
Au moment de constituer le 2° liste de choix j'ai le message :la source est reconnue comme erronée. Ce n'est pas un pb de liste non utilisée comme je l'ai écrit un peu vite.
Un pb de marquage de cellule ??? tjrs sur cette formule : =INDIRECT("ERR_"&(RECHERCHE(F2;ListeServices)))
Si qqun peut indiquer la solution sur ce forum.
Merci
0
La technique de Cyrilounet en message trois fonctionne est super, cela fonctionne impeccable à un petit détail sur la formule du champ de validation ainsi que sur le nommage des liste :
* La formule est =INDIRECT("ERR_"&(RECHERCHE(F1;listeservices))) --> F1 au lieu de F2
* Ne pas mettre d'espace dans les champs et nommer les listes (ERR_service1, ERR_service2,...)
0
michel_m
Messages postés
16568
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 mai 2022
3 280 > Arno
15 sept. 2009 à 11:49
Arno, Excuses moi d'avoir dérangé en proposant quelquechose
0
Ooups > Arno
9 nov. 2013 à 18:14
Magnifique ! ca marhe du tonnerre ! Merci !
0