Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Résolu] Liste dynamique conditionnelle

  • Initiateur de la discussion Initiateur de la discussion Yard
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Yard

XLDnaute Nouveau
Bonjour,

Je cherche à créer dynamiquement une liste de contrôle dans les cellules G4:G8 de la table B de l'exemple joint pour peupler ensuite les cellules H4:I8 de cette même table.

La liste de contrôle détermine quel intervenant on choisit pour la tâche.

Les intervenants proposés au choix dépendent du profil qui est prévu pour la tâche. Un profil est utilisé si une valeur numérique est saisie dans sa colonne (voir table A, plage C4:F8). Un seul profil est utilisé pour une tâche donnée.

Pour savoir quels intervenants sont possibles pour un profil donné, on a créé la table B, elle sert de référentiel.

Les tables B' et C' sont des tentatives inabouties pour arriver au résultat. B' génère la liste des intervenants possibles pour un profil et C' utilise ces listes comme listes de contrôle. Les défauts et limites de cette approche sont commentés sur l'exemple.

Comment faire pour que la liste de contrôle soit générée et utilisée le plus simplement possible ?

Merci d'avance pour votre aide.
 
Dernière édition:
Re : Liste dynamique conditionnelle

Bonsoir Yard,
Salut Dugenou 🙂

Pas trop compris ce qui est demandé dans la Table A
Dans la Table B', avec ce que j'ai cru comprendre, essaye, en J15
Code:
=SI(LIGNES($1:1)<=NB.SI(C$15:C$20;"Possible");INDEX($B$15:$B$20;PETITE.VALEUR(SI(C$15:C$20="Possible";LIGNE(C$15:C$20)-14);LIGNES($1:1)));"")
Valider avec Ctrl+Shift+Enter, puis recopier à droite et en bas

Dès lors, la validation, en B25 peut être une Liste avec, comme source, la formule suivante:
Code:
=DECALER(J$15;0;0;NB.SI(J$15:J$20;"> "))
... à recopier vers la droite aussi (en effaçant le contenu de B25, préalablement)

Dis-nous déjà si ce n'est pas à des lustres de distance par rapport à ce que tu attendais 😕
 
Re : Liste dynamique conditionnelle

Hello @Modeste : diantre, déjà c'est beau comme du Mozart 🙂
Blague à part je suis impressionné, merci.
J'essaie ça dès que possible et je te fais un retour.
 
Re : Liste dynamique conditionnelle

Bonjour,
J'obtiens des #valeur.
En pas à pas, la formule coince juste après la situation suivante :
SI(VRAI;INDEX ($B$15;"Intervenant 6";1);"")
Au pas d'après, la fonction Index échoue.
C'est bien en j15 qu'il faut mettre la formule ?

Le nombre d'items dans chaque liste est cohérent en revanche. Ca doit pas être loin..
Peux-tu me renvoyer ton fichier stp ?
 
Re : Liste dynamique conditionnelle

Trouvé mon erreur.
Ca marche en horizontal sur la table C'.
Le but ultime c'est de contrôler les choix sur table C, plage c4:c:8, en prenant la liste qui correspond au profil qui a des jours dans chaque ligne de la table A (c4:f8).
Une idée ?
 
Re : Liste dynamique conditionnelle

Bonjour Yard,

je répondais à ton premier message ... pendant que tu rédigeais le second!

Yard à dit:
SI(VRAI;INDEX ($B$15;"Intervenant 6";1);"")
😱 c'était une de mes formules ça!? 😱


Yard à dit:
Le but ultime c'est de contrôler les choix sur table C, plage c4:c:8, en prenant la liste qui correspond au profil qui a des jours dans chaque ligne de la table A (c4:f8).
Une idée ?
Pour que quelqu'un ait une idée, tu pourrais d'abord traduire en un langage accessible aux non-initiés? Parce que là ... 😕
 
Re : Liste dynamique conditionnelle

Bonjour,
Je n'ai pas le temps de regarder en détail maintenant mais la formule de modeste dit index(B15:B20;...
si tu n'as qu'une cellule dans ton index, ça plante forcément à la seconde valeur appelée.
Cordialement et à plus certainement

Edit : télescopage ! salut Modeste : je crois que ce qui est donné c'est le résultat du "pas à pas" : faudra que j'essaye ça, je ne m'en sert jamais.
 
Dernière édition:
Re : Liste dynamique conditionnelle

Oui Dugenou, c'est le résultat de l'évaluation de formule. Très bien comme début..
@modeste.. Aie, comment reformuler..
Ta solution permet d'avoir des listes déroulantes dans b25:e25, ok ?
Ben mon but c'est qu'elles soient dans les cases h4;h8 et que le choix de la liste presentee sur chaque case varie : dans l'exemple, en h4, c'est le profil 1 qui fait la tâche, donc faut choper la liste j15:j20. Pour h5 et 6, c le profil 2, donc faut prendre k15:k20.
tu vois le truc ?
Une indirection de + en fait
fonctionnellement ca permet de choisir l'intervenant pour chaque profil "utilisé" dans une liste réduite. Ça évite de devoir garder en tête tout le tableau référentiel (table b dans l'exemple)

yes ?
 
Re : Liste dynamique conditionnelle

Bonsoir le fil,

@Dugenou: j'avais en tête le "Pas à pas" de l'éditeur vba et non l'évaluation de formule que je n'utilise jamais non plus 😛

@Yard:
Très bien comme début..
😉 J'imagine que tu n'évoquais pas les débuts de Dugenou dans le monde magique d'Excel ... mais alors le début de quoi?

Pour le reste, j'avais oublié le problème posé en Excel par l'utilisation de plages dynamiques. J'ai donc "tourné en rond" pendant un bon quart d'heure avant de renoncer à trouver mieux que la proposition en annexe (mais que ceci n'empêche personne de proposer une amélioration)
La TABLE C' ne sert plus à rien, si j'ai bien compris ... 4 plages nommées "statiques", respectivement appelées "Profil_1", "Profil_2", etc correspondent aux valeurs de la TABLE B'. Dans les cellules H4 à H8, des validations de type Liste, avec comme source, la formule
Code:
=INDIRECT(SUBSTITUE(INDEX($C$3:$F$3;;EQUIV(9^9;$C4:$F4));" ";"_"))

Comme les plages ne sont pas dynamiques, elle affichent donc 1, 2 ou trois items, suivis de "blancs" ... pas mieux en magasin 🙁
Si ça ne te botte pas plus qu'à moi, on doit pouvoir faire mieux par macro ... mais voyons d'abord si Dugenou un quelqu'un d'autre ne peut pas proposer mieux?
 

Pièces jointes

Re : Liste dynamique conditionnelle

Bonjour,

Une idée (en me levant ce matin) qui semble fonctionner ... sélectionner la plage concernée (tu parlais de H4:H8, mais dans ton exemple, n'est-ce pas plutôt G4:G8 😕) > Données > Validation de données > Liste > Source:
Code:
 =DECALER($J$15;;EQUIV(INDEX($C$3:$F$3;;EQUIV(9^9;$C4:$F4));$J$14:$M$14;0)-1;NB.SI(DECALER($J$15;;EQUIV(INDEX($C$3:$F$3;;EQUIV(9^9;$C4:$F4));$J$14:$M$14;0)-1;6);"> "))

On peut, par ailleurs, supprimer les plages nommées, qui ne sont plus utiles.
 
Re : Liste dynamique conditionnelle

Bonjour,

Début de solution, la cible est de renseigner les entités : voir l'exemple modifié dans ce sens.
La limitation est réelle, mais c'est utilisable, donc bravo et merci d'ores et déjà.
Pour le reporter sur la feuille définitive, j'ai besoin de comprendre la formule de validation des données en G4:G5.
Qu'est-ce que ce
Code:
9^9
par exemple ?
Quand je recopie la formule dans un fichier a priori identique, à la cellule près, elle ne fonctionne plus, Excel m'indique "La source est reconnu comme erroné. Voulez-vous continuer" (avec faute de grammaire d'origine 😛 )

Merci encore et à bientôt le plaisir de vous lire.
 

Pièces jointes

Re : Liste dynamique conditionnelle

Re,

Tu as vu qu'on avait posté à 1 minute d'intervalle!? 😉
La dernière proposition n'utilise plus de plages nommées (la précédente oui ... et c'est peut-être ce qui provoquait l'erreur, quand tu transposais dans un autre fichier: celui-ci contenait-il des plages nommées?)
Bref, teste la nouvelle formule ...

Quant au 9^9, ne sachant pas dans quelle fourchette seraient comprises les valeurs en C4:F8, j'ai utilisé 9 exposant 9 (soit 387.420.489 ... dont j'ai supposé qu'il serait supérieur à la plus grande des valeurs de chaque ligne) [en l'écrivant ici, s'il n'y a qu'un nombre par ligne, je me dis qu'on aurait pu aussi bien chercher le max de la plage!?]

Tu testes et tu nous dis? ...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
1
Affichages
565
Matprobexcel
M
A
Réponses
10
Affichages
1 K
A
A
  • Question Question
Réponses
6
Affichages
1 K
Ariella
A
K
Réponses
38
Affichages
10 K
kinders59
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…