Liste conditionnelle

ironangel

XLDnaute Occasionnel
Bonjour le forum,

J'aimerais savoir si via excel et sans macro, il est possible de creer des listes déroulantes conditionnelles, je m'explique:
1ere liste: matin midi soir/ 2eme liste : pain, croissant, jus, salade, saucisson, jambon, soupe...
en gros si je choisi matin dans la 1ere liste, j'aimerais que dans la 2eme liste, seules les propositions pain, croissant et jus apparaissent.

Est-ce possible?

Merci d'avance pour votre aide.
Amicalement
 

Tibo

XLDnaute Barbatruc
Re : Liste conditionnelle

Bonjour,

Cela est possible.

Fait une recherche sur le Forum avec les mots clés suivants :

liste déroulante imbriquée

Tu trouveras de nombreux exemples à adapter à ton fichier

@+
 

EtienneChouard

XLDnaute Nouveau
Re : Liste conditionnelle

Salut,

À propos de listes déroulantes, ne ratez pas ces menus popup signalés par Wilfried42 :

https://www.excel-downloads.com/threads/liste-avec-arborescence.105470/

---------------------

Et, à propos de "listes conditionnelles", si quelqu'un sait où Laurent Longre avait expliqué comment filtrer les listes déroulantes au fur et à mesure de la frappe, ce serait sympa de me le signaler (je n'arrive pas à retrouver ça dans l'océan des trucs formidables sur Excel :rolleyes:) : la première initiale saisie change la liste déroulante qui affiche aussitôt la première réponse commençant par cette lettre, la deuxième lettre tapée affine encore l'approche, etc. et quand on est en visuel de la réponse voulue, on finit l'approche avec (flèche bas et) Entrée.

Merci à tous, pour tout ce que vous faites pour les autres :)

Étienne.

____________________
Le secret d’une autorité, quelle qu’elle soit, tient à la rigueur inflexible avec laquelle elle persuade les gens qu’ils sont coupables. Raoul Vaneigem.
 
Dernière édition:

EtienneChouard

XLDnaute Nouveau
Re : Liste conditionnelle

Listes déroulantes filtrées par les premiers caractères saisis

Rebonjour,

J'ai trouvé quelque chose d'intéressant :rolleyes:
et je fais passer l'info, pour ceux que ça intéresse :

Voyez ce mode opératoire :
"Liste déroulante avec saisie semi automatique pour EXCEL"

Liste déroulante avec saisie semi automatique pour EXCEL - La solution

(Ce n'était peut-être pas Laurent Longre qui avait publié une astuce comme celle-là pour filtrer les listes de Données Validation en fonction de la frappe, je ne sais plus...)

L'idée consiste à placer une formule dans le champ 'Source de la liste' de Données Validation :

(A1 étant la cellule qui va afficher la liste déroulante, celle dont on assiste la saisie avec Données Validation)

=SI(A1<>"";DECALER(premier_item;EQUIV(A1&"*";liste_items;0);;SOMME((STXT(liste_items;1;NBCAR(A1))=TEXTE(A1;"0"))*1));liste_items)

liste_items et premier_item sont deux noms dynamiques (calculés avec DECALER), ce qui permet d'outrepasser l'interdiction d'Excel d'utiliser des cellules externes dans Données Validation (truc indispensable depuis Excel 2003).

Quand la liste de référence est interminable, on fait là un grand progrès par rapport aux listes déroulantes de base d'Excel (qui, rappelons-le, n'accepte même pas, pour alimenter les listes, de source extérieure au classeur, sans utiliser de complexes noms dynamiques, honte à lui ;)

________________

Faiblesses résiduelles (si quelqu'un a une idée d'amélioration, je suis très intéressé) :

• Avec la formule ci-dessus, quand l'opérateur commence à saisir les premières lettres, il ne se passe rien. Ce n'est qu'en cliquant sur la flèche que la liste (filtrée) apparaît. Et il faut cliquer sur un choix pour le sélectionner.

Dans d'autres interfaces plus confortables (les listes déroulantes d'Access sont exemplaires), le champ saisi (ou la liste, si elle a été déroulée) s'actualise tout seul dès la première frappe, et ensuite, continue à s'actualiser au fur et à mesure de la frappe... Puis, Entrée valide et passe au champ suivant, sans avoir besoin de pointer le choix si ce choix est évident.

Je ne sais pas si cet effet (très souvent nécessaire) est possible avec Excel, mais ce serait vraiment un gros progrès dans l'ergonomie des classeurs où la saisie doit être assistée et contrôlée.

• Avec la formule ci-dessus, ALT BAS (qui est la procédure habituelle au clavier pour dérouler les listes sans avoir à prendre sa souris, prise de souris qui ralentit beaucoup les mains agiles qui connaissent bien leur clavier) est HS, ce qui est un beau bug. {Correctif : si on valide avec Entrée la saisie des premiers caractères (ce qui n'est possible qu'en désactivant complètement le contrôle de saisie), ALT BAS fonctionne alors comme d'habitude.}

• Le mode opératoire ci-dessus indique de désactiver le contrôle de saisie (onglet Alerte d'erreur, décocher 'Quand des données non valides sont tapées'), ce qui fait perdre une grande partie de l'intérêt de Données Validation :(

Pour ma part, j'ai gardé un contrôle doux, tolérant une erreur mais en la signalant (je choisis le Style 'Information' dans le même onglet 'Alerte d'erreur' de Données Validation), mais cela donne une ergonomie critiquable car Excel affiche un message d'erreur alors que la saisie n'est pas encore achevée (l'opérateur peut se dire : "Quelle erreur ? Qu'est-ce qu'il me veut, ce tas de ferraille ? Il ne peut pas réfléchir un peu ?" :rolleyes:).

• Enfin, avec la formule ci-dessus, la liste n'affiche que les items qui commencent par la chaîne déjà saisie, alors que l'opérateur ne sait souvent pas du tout par quel mot commence ce qu'il cherche ; il sait à la rigueur un mot contenu dans l'item cherché, ce n'est déjà pas si mal... : idéalement, il faudrait que, pendant qu'il tape, la liste s'actualise en dessous en retenant tous les items qui contiennent la chaîne qu'il a déjà saisie.

_________________

En tout cas, merci pour tout :)

Étienne.

Mémentos et outils pour Windows, Excel et Word
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Dernière édition:

EtienneChouard

XLDnaute Nouveau
Re : Liste conditionnelle

Merci beaucoup, JB : vous veillez sur nous, tel un ange gardien ;)

Votre formule est plus élégante, plus courte, plus compréhensible.

Mais elle fonctionne de la même manière : elle ne filtre que sur les premiers caractères, alors que dans les longues listes d'expressions complexes (comme des raisons sociales ou des mots-clefs), l'opérateur ne connaît souvent qu'un mot perdu au milieu de l'item qu'il cherche.

Ceci dit, votre formulation, elle, accepte de mettre un autre joker * en tête de l'expression, ce qui permet d'obtenir un filtre quelle que soit la position de la chaîne saisie dans les items filtrés (y compris au début) :

=DECALER(Noms;EQUIV("*"&A2&"*";Noms;0)-1;;NB.SI(Noms;"*"&A2&"*"))

Bien.

Il reste qu'il faut désactiver le contrôle de saisie, pour ne garder que l'assistance à la saisie : si l'opérateur tape une sottise, notre liste le laisse faire... Je m'en sortirai avec un peu de code pour contrôler cette éventuelle erreur de saisie et la signaler par message.

Merci pour tout, votre site est impressionnant.

Amicalement.

Étienne.

Mémentos et outils pour Windows, Excel et Word

________________
La force de la communauté se mesure au bien-être du plus faible de ses membres. Préambule de la Constitution suisse.
 

Discussions similaires