Listes déroulantes en cascades 5 niveaux
Bonjour à tous,
Je suis nouveau sur le forum et novice sur Excel, en revanche dans le cadre de mon travail je dois utiliser l'outil.
Après une formation je maitrise les bases, mais je suis bien loin d'être expert.
Aujourd'hui je rencontre une problématique: je dois constituer un fichier (qui s'apparente un peu à une base de données). Pour faciliter les recherches sur ce fichier j'ai décidé de faire des listes déroulantes. (en bas du tableau)
Il faudrait que je puisse avoir 5 listes déroulantes (correspondant finalement aux 5 colonnes de mon tableau Cf.Pièce joint) qui soit liées entre elles. Exemple: je choisis une catégorie en liste 1, j'obtiens alors les problématiques liées à cette catégorie en liste 2, j'obtiens alors l'intitulé de la procédure en liste 3 ....etc Cf.pj
les contraintes : ce tableau sera évolutif et pourra recevoir de nouveaux intitulés dans chaque catégories.
j'ai bien regardé les autres problématiques du forum mais je n'ai pas trouvé de solutions à mon problème. J'ai tout de même cherché par moi même etc mais je vous avoue que la fonction décaler est du charabia pour moi.
Pouvez vous s'il vous plait essayer de résoudre ma problématique et surtout de m'expliquer les étapes pour que je puisse le refaire seul car je serai amené à refaire ce type de chose et cette fois ci seul!
Merci d'avance, je reste à votre disposition pour toutes questions.
Mateo
Une réponse rapide pour toi mateo.
Pour faire une liste déroulante en série, liste qui en plus dépend des liste préceédentes, il faut utiliser la fonction indirect.
Tu trouveras un exemple pour la colonne n°2.
Pour utiliser la fonction indirect, il faut nommer les plages de cellules selon le contenu de la colonne précédente (par exemple, il y a 2 cellules qui correspondent à A. Tu comprendras en regardant le second onglet que j'ai crée.
Cordialement.
Ncrepy
Amadéus a écrit :Bonjour
Regarde si cela convient
Cordialement
Bonjour Amadéus,
Merci de ta réactivité, c'est exactement ce que je voulais. Peux tu m'expliquer ta démarche étape par étape et les fonctions que tu as utilisé pour que je puisse le reproduire.
Cordialement
-- 02 Fév 2011, 16:30 --
ncrepy a écrit :Une réponse rapide pour toi mateo.
Pour faire une liste déroulante en série, liste qui en plus dépend des liste préceédentes, il faut utiliser la fonction indirect.
Tu trouveras un exemple pour la colonne n°2.
Pour utiliser la fonction indirect, il faut nommer les plages de cellules selon le contenu de la colonne précédente (par exemple, il y a 2 cellules qui correspondent à A. Tu comprendras en regardant le second onglet que j'ai crée.
Cordialement.
Ncrepy
Bonjour ncrepy,
Merci de t'intéresser à mon problème, je ne comprends pas trop ce que tu as fait. SI je sélectionne une première option dans "catégorie", je n'ai toujours pas les réponses attendues.
Cordialement
Re, bonjour
Je suis toujours un peu "angoissé" quand je lis:
Peux tu m'expliquer ta démarche étape par étape et les fonctions que tu as utilisé pour que je puisse le reproduire.
D'abord, parce que c'est long et ensuite, pas toujours évident à décortiquer. J'espére que tu t'y retrouveras.
Colonne intermédiaire B
Formule en B3 incrémentée vers le bas
=SI(NBCAR(A3)>0;A3;B2) permet pour chaque ligne d'identifier la categorie, ce qui permettra également de compter le nombre A, B, C, D ou tout autre catégorie.
Formules et validation de liste en ligne 41
En A41, tu as fait la liste déroulante des catégories.
En C41, la formule de la validation de liste déroulante
=DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);1)cherche le champ de la colonne C cprrespondant à la Categorie sélectionnée en A41
Par exemple, si tu choisis F en A41
=EQUIV("F";$A$3:$A$35;0)renvoie la position de F dans A3:A35 soit 29
=NB.SI($B:$B;$A41)compte le nombre de lignes contenant F en colonne B, soit 5
Notre formule DECALER devient
=DECALER($C$2;29;;5;1)=DECALER(Ref; Lignes;Colonnes;Hauteur;Largeur)
définit donc une plage d'une hauteur de 5 lignes et d'une colonne, plage décalée de 29 lignes par rapport à C2
soit la plage C(2+29):C(2+29+4) ou C31:C35
La liste déroulante en C41 indique donc le contenu de cette plage quand F est sélectionné en A41
En D41 et E41, cette formule représentant le champ de recherche correspondant au choix de F et ici de KPKE en C41 est utisée imbriquée avec un RECHERCHEV classique pour donner les valeurs des colonnes D et E
il suffit d'agrandir la Largeur du Champ dans la formule précédente pour définir le nouveau champ de recherche contenant les Données à chercher.
Nous avons vu plus haut que
DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);1)représente le champ C31:C35
si nous élargissons ce champ sur 4 colonnes
DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);4)nous obtenons le champ C31:F35
et RECHERCHEV avec 2 à la fin renvoie la valeur de la cellule contenant KPKE dans C31:C35 et donne la valeur de la seconde colonne du champ C1:F35; soit la valeur en colonne D
=RECHERCHEV($C41;DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);4);2;0)En E41, la formule est la même, mais doit renvoyer un Lien_Hypertexte activé. De plus, certaines cellules n'ont pas de Lien et RECHERCHEV renvoie 0.
Pour éviter le renvoie de 0, une condition SI prévoit de ne rien renvoyer dans ce cas
=SI(RECHERCHEV($C41;DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);4);3;0)=0;"";LIEN_HYPERTEXTE("mailto:"&RECHERCHEV($C41;DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);4);3;0);RECHERCHEV($C41;DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);4);3;0)))A l'intérieur de cette formule, la partie
=LIEN_HYPERTEXTE("mailto:"&RECHERCHEV($C41;DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);4);3;0);RECHERCHEV($C41;DECALER($C$2;EQUIV($A41;$A$3:$A$35;0);;NB.SI($B:$B;$A41);4);3;0))est constituée du Lien et du Nom convivial
=LIEN_HYPERTEXTE("Chemin d'accès texte"; "Nom convivial texte")
Cordialement
Merci beaucoup Amadeus d'avoir pris le temps de faire cette explication. Elle me sera tres utile pour progresser. je vais prendre le temps d'étudier chaque étapes pour comprendre le mécanisme. J'ai fait un tour sur la partie exo du site qui est tres bien faite aussi...
Bien cordialement,
Mateo
Bonjour à tous.
Je réactive ce topic pour vous demander si la même chose est possible (c'est à dire une liste déroulante en cascades), seulement la différence dans mon cas, c'est que les données et les listes déroulantes de choix ne se trouvent pas sur la même feuille de calcul Excel.
Or quand j'essaye de mettre dans ma validation de données une formule qui porte sur une autre feuille que celle dans laquelle je me trouve, c'est impossible.
Merci pour votre réponse !
Ncrepy
Bonjour
Or quand j'essaye de mettre dans ma validation de données une formule qui porte sur une autre feuille que celle dans laquelle je me trouve, c'est impossible
Si elle dépend des données d'une autre Feuille, la liste déroulante doit avoir comme source une plage Nommée.
Donc, tu nommes ta plage ou ta formule représentant ta plage et tu utilises ce nom pour la validation.
Cordialement
Très clair, comme d'habitude.
Merci Amadéus
Bonjour,
La fonction indirect marche nikel sur ma première ligne
Mais je n'arrive pas à l'étendre sur les autres lignes de la même colonne, comment procéder svp ?
Merci d'avance.
Bonjour denight . Bienvenue sur le Forum
Je te suggères de créer un nouveau post en cliquant sur le Bouton "Nouveau" car celui-ci est clos.
Pense aussi à joindre un fichier ou un exemple sur une feuille Excel car ta question n'est pas assez précise.
Cordialement