Liste conditionnelle Excel
Fermé
cogecom
-
13 janv. 2012 à 15:35
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 19 févr. 2012 à 17:06
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 19 févr. 2012 à 17:06
A voir également:
- Liste conditionnelle Excel
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Excel liste déroulante en cascade - Guide
- Formule excel - Guide
- Si et excel - Guide
2 réponses
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
856
14 janv. 2012 à 12:18
14 janv. 2012 à 12:18
Bonjour à tous,
en utilisant le classeur de michel_m (onglet cascade_variable) sur les listes et les formules de J. Boisgontier (Liste sans doublons conditionnelle) ça peut donner ça : https://www.cjoint.com/?BAombMyO2cD
comme les liens cjoint ne durent pas, voici le contenu :
1) une table "2 colonnes" (en $C$5:$D$27) qui contient les données de validation principale en 1ère colonne (les étapes) et celles de la validation dépendante en 2ème colonne (les plats de l'étape). Il y a donc répétition des données en colonne 1 de cette table.
Chaque colonne sera nommée en dynamique (pour prendre en compte l'ajout/suppression d'associations) :
Liste_Etapes =DECALER(cascade_variable!$C$5,0,0,NBVAL(cascade_variable!$C$5:$C$4444),1)
Liste_Plats =DECALER(cascade_variable!$D$5,0,0,NBVAL(cascade_variable!$D$5:$D$4444),1)
2) la validation principale est en $H$5 et contient la formule =Etapes
la validation conditionnelle est en $H$6 et contient la formule =Plats_acssociés
Ces 2 derniers noms sont également dynamiques :
Etapes =DECALER(cascade_variable!$A$5,0,0,SOMMEPROD(--(cascade_variable!$A$5:$A$4444<>0)),1)
Plats_acssociés =DECALER(cascade_variable!$B$5,0,0,SOMMEPROD(--(cascade_variable!$B$5:$B$4444<>0)),1)
3) le contenu des ces listes est construit par les formules matricielles à recopier autant que nécessaire :
en $A$5 =INDEX($C:$C,MIN(SI(Liste_Etapes<>"",SI(NB.SI(A$4:A4,Liste_Etapes)=0,LIGNE(Liste_Etapes),LIGNES(Liste_Etapes)+LIGNE(Liste_Etapes)))))
en $B$5 =INDEX($D:$D,MIN(SI(Liste_Etapes=$H$5,SI(NB.SI(B$4:B4,Liste_Plats)=0,LIGNE(Liste_Plats),LIGNES(Liste_Plats)+LIGNE(Liste_Plats)))))
Cordialement
en utilisant le classeur de michel_m (onglet cascade_variable) sur les listes et les formules de J. Boisgontier (Liste sans doublons conditionnelle) ça peut donner ça : https://www.cjoint.com/?BAombMyO2cD
comme les liens cjoint ne durent pas, voici le contenu :
1) une table "2 colonnes" (en $C$5:$D$27) qui contient les données de validation principale en 1ère colonne (les étapes) et celles de la validation dépendante en 2ème colonne (les plats de l'étape). Il y a donc répétition des données en colonne 1 de cette table.
Chaque colonne sera nommée en dynamique (pour prendre en compte l'ajout/suppression d'associations) :
Liste_Etapes =DECALER(cascade_variable!$C$5,0,0,NBVAL(cascade_variable!$C$5:$C$4444),1)
Liste_Plats =DECALER(cascade_variable!$D$5,0,0,NBVAL(cascade_variable!$D$5:$D$4444),1)
2) la validation principale est en $H$5 et contient la formule =Etapes
la validation conditionnelle est en $H$6 et contient la formule =Plats_acssociés
Ces 2 derniers noms sont également dynamiques :
Etapes =DECALER(cascade_variable!$A$5,0,0,SOMMEPROD(--(cascade_variable!$A$5:$A$4444<>0)),1)
Plats_acssociés =DECALER(cascade_variable!$B$5,0,0,SOMMEPROD(--(cascade_variable!$B$5:$B$4444<>0)),1)
3) le contenu des ces listes est construit par les formules matricielles à recopier autant que nécessaire :
en $A$5 =INDEX($C:$C,MIN(SI(Liste_Etapes<>"",SI(NB.SI(A$4:A4,Liste_Etapes)=0,LIGNE(Liste_Etapes),LIGNES(Liste_Etapes)+LIGNE(Liste_Etapes)))))
en $B$5 =INDEX($D:$D,MIN(SI(Liste_Etapes=$H$5,SI(NB.SI(B$4:B4,Liste_Plats)=0,LIGNE(Liste_Plats),LIGNES(Liste_Plats)+LIGNE(Liste_Plats)))))
Cordialement
Raymond PENTIER
Messages postés
58404
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
2 mai 2024
17 097
14 janv. 2012 à 05:30
14 janv. 2012 à 05:30
Bonjour.
Question 1 : Non, pas de solution automatique (à part une éventuelle macro).
Question 2 : N'ayant pas ton fichier, je n'ai pas pu suivre ton explication ...
Question 1 : Non, pas de solution automatique (à part une éventuelle macro).
Question 2 : N'ayant pas ton fichier, je n'ai pas pu suivre ton explication ...
18 févr. 2012 à 22:06
je viens de récupérer ton fichier, et je tente de le tester sur le mien. Seulement, je n'arrive pas à l'appliquer correctement : https://www.cjoint.com/?BBsv7CrNFV1
Dans l'onglet Listes, je n'arrive pas à récupérer correctement le contenu de ce que tu présentes comme le point 3) .
J'ai bien créé mes listes de base, Liste_Championnats et Liste_Journée, puis la validation principale en F4 et la validation conditionnelle en G4.
Le problème est donc que je n'arrive pas bien à avoir en colonne C la liste de tous les championnats différents, et en colonne D les journées correspondant au championnat.
Cordialement.
Modifié par JvDo le 19/02/2012 à 01:02
ta formule en C2 devrait être :
=INDEX($A:$A,MIN(SI(Liste_Championnats<>"",SI(NB.SI(C$1:C1,Liste_Championnats)=0,LIGNE(Liste_Championnats),LIGNES(Liste_Championnats)+LIGNE(Liste_Championnats)))))
et en D2 :=INDEX($B:$B,MIN(SI(Liste_Championnats=$F$4,SI(NB.SI(D$1:D1,Liste_Journées)=0,LIGNE(Liste_Journées),LIGNES(Liste_Journées)+LIGNE(Liste_Journées)))))
Cordialement
19 févr. 2012 à 12:00
Mais qu'est-ce que j'ai été nul pour passer à côté de ça ! Merci beaucoup !
Surtout pour la 2e où je suis impardonnable de mettre <> à la place de =
Bonne journée.
19 févr. 2012 à 17:06
j'ai mis 1/2h à trouver.
Je ne comprenais pas pourquoi tes formules ne fonctionnaient pas...
Je suis donc passé sur les erreurs de saisie sans les voir tout en les cherchant!!
Comme quoi...