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
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,...)
9