Liste déroulante saisie semi-automatique
Bonjour à tous.
Je m'adresse à cette communauté car je ne sais absolument pas utiliser les VBA
Voici mon problème :
En D4 et F4, je souhaite avoir une liste déroulante à saisie semi-automatique (donc impossible avec Validation de données), et je sais que pour cela il faut utiliser une ComboBox. Cependant, voici la particularité :
En B4, j'ai une colonne "Catégorie" où j'ai le choix entre une catégorie 1 et une catégorie 2. Et en C4, j'ai le choix entre des sous-catégories, à savoir 2 sous-catégories pour la Catégorie 1, et 6 sous-catégories pour la catégorie 2.
Ce que je souhaiterai, c'est avoir une liste déroulante semi-automatique pour chacune de ces options, dans les mêmes cases (D4 et F4). C'est-à-dire si j'ai "Catégorie 2 - Sous-catégorie 4", avoir la liste déroulante affiliée en D4 et F4 (oui, la même), si j'ai "Catégorie 1 - Sous-catégorie 2", avoir la liste déroulante affiliée toujours en D4 et F4. Il y a donc 8 listes au total. Le but serait qu'il n'y ait pas de liste déroulante accessible tant que Catégorie et sous catégorie ne sont pas sélectionnés. Et si possible que ce soit extensible (si je choisis une catégorie et sous catégorie en B5 et C5, avoir les listes déroulantes en D5 et F5).
Je ne sais pas si je suis clair, je met un fichier pour illustrer l'exemple des catégories et sous-catégories
Si vous avez besoin de précisions n'hésitez pas !
Merci d'avance,
Très cordialement.
bonjour
chercher sur le net "liste déroulantes en cascade"
Bonjour,
J'entends bien, seulement j'ai des listes d'environ 100 options possibles, la saisie-semi automatique est donc primordiale, et c'est un peu l'objet de ma requête, en fait.
Bonjour, Salut jmd !
Moi, j'ai rien compris !
Listes-cascade, je connais aussi. Il y manifestement un lien de dépendance entre choix Catégorie et liste Sous-catégorie. Il suffit donc de définir cette dépendance : les sous-catégories attachées à chaque catégorie.
Au-delà, y a-t-il dépendance de la liste de 3e choix par rapport au choix 2 (voire au choix 1 directement)... ?
Si on l'exprime clairement en termes logiques, je pourrais comprendre
Monter la base de tous les choix : choix1-choix2-choix3(-choix4 ?) à partir de laquelle on pourra opérer.
Cordialement.
Pourtant c'est assez connu, quand tu tapes sur internet Liste déroulante semi-automatique, c'est en fait comme le fait google quand tu tapes quelque chose dans la recherche, c'est te proposer des choix par rapport aux lettres que tu tapes. Comme mes listes sont grandes (100 options), chercher dans tout cela est assez long et pas pratique, donc la saisie semi-automatique est nécessaire. Quand je marque "M", il faudrait que ça me propose les mots commençant par M de la liste, si je mets "MA", que ça se réduise, etc.
Sinon, je n'ai pas compris ce que tu as dis par la suite. En gros si je choisis la catégorie 1 et la sous-catégorie 1, que ça me mette une liste, si je choisis catégorie 1, sous-catégorie 2, une deuxième liste, etc...
Le lien entre catégorie et sous catégorie je l'ai déjà fait, c'est assez facile, avec validation de donnée. Et effectivement, si je n'avais pas besoin de saisie semi-automatique, j'utiliserai ce que jmd a dit, une liste cascade. Mais là j'ai besoin de VBA, malheureusement je ne m'y connais pas. Là je ne sais pas comment être plus clair, par contre :/
Très cordialement.
Cette saisie semi-automatique là est une fonctionnalité Excel, qui a quelques avantages en effet mais aussi quelques inconvénients, mais qui n'a rien à voir avec le caractère déroulant d'une liste.
La liste d'une Combo présente effectivement cet avantage par rapport à une liste de validation de pouvoir opérer une présélection dans la liste au fil de la frappe... Pour que cela fonctionne de façon intéressante la liste doit être en ordre alpha.
Pour une liste de validation, on obtient quelque chose d'un peu comparable en codant la rédution de la liste à partir d'une saisie partielle, on peut ainsi faire des choix plus complexes de retraitement de la liste selon besoins, mais l'inconvénient est qu'il faut valider une pré-saisie pour déclencher l'opération...
C'est en tout cas une question autre que celle des listes-cascade, et il me semble que tu as intérêt à traiter d'abord celle-ci. Avec 2 choix tu as une base à 2 colonnes : prenons catégorie1 qui génère un choix souscatégorie1 et 2, tu auras 2 lignes dans ta base intéressant la catégorie 1 à ce stade. Si tu as ensuite un choix3 dépendant, mettons 3 possibilités de choix pour le choix sousCat1 et 5 pour le choix sousCat2, tu auras alors une base à 3 colonnes et 8 lignes intéressant la catégorie 1.
Même chose pour les autres catégories, à la suite, et si choix 4, une 4e colonne dans la base, qui conduira à multiplier autant que nécessaire les lignes... C'est à partir d'une telle base que l'on peut définir les listes successives. Il convient donc d'abord de la monter.
Ensuite on extrait la liste de choix1 de la 1re colonne, sans doublon. On extrait la base de la liste de choix2 ar extraction des 2 premières colonnes, sans doublon, qui permettra une définition de la liste2 par formule. Même chose éventuellement pour choix3 (pour le dernier choix on peut opérer directement sur la base (triée) pour définir la liste.
On aura une combinaison formules-code VBA variable, mais une part incompressible de code pour assurer un confort minimum d'utilisation, les choix faits ne s'effaçant pas automatiquement lorsqu'on modifie un choix de niveau antérieur... Pour le reste c'est selon utilisation qu'on déterminera le dosage le plus intéressant.
Cordialement.
Bon eh bien je pense que je vais clore le topic alors, personne n'a l'air d'avoir la solution
Merci quand même.
Ce ne sont pas les solutions qui manquent !
Mais il y a toujours lieu de commencer par le commencement !
Je sais bien, mais je ne comprends pas très bien les réponses que j'ai reçu (je débute, à Excel) ! En gros, là je sais que ce qu'il me faut c'est une Combobox. Les listes en cascades pour les catégories et sous-catégories, je m'en suis déjà occupé, ça je sais faire
Je n'ai pas vu de listes-cascade fonctionnelles dans ton fichier...
Moi, je ne sais faire qu'à partir de la situation qu'on me présente
Je t'ai envoyé un message privé, mais il a l'air de rester bloqué dans la boite d'envoi
Bonjour,
Vu ton fichier. Tes listes sont nommées. Tu rajoutes un nom : LIST et tu le définis par :
=INDIRECT("LIST_"&'Octobre 18'!$C$4)
ce qui renverra la liste sélectionnée en C4.
Si tu places une ComboBox, tu définis les propriétés de la Combo ainsi :
ListFillRange = LIST
ColumnCount = 2
ColumnWidth = 15;60 (à ajuster éventuellement)
TextColumn = 2
La valeur affichée sera le nom du joueur lors de la sélection. L'aspect semi-automatique fonctionne mais restera limité, tes listes n'étant pas triées .
Tu peux éventuellement affichée le nom du joueur dans une cellule liée, dans ce cas, propriétés :
LinkedCell = $D$4 (par exemple)
BoundColumn = 2
Cordialement.