Liste déroulante conditionnée par une autre

Résolu/Fermé
senecartour Messages postés 325 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 29 octobre 2020 - Modifié par senecartour le 13/05/2014 à 16:38
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 14 mai 2014 à 08:40
Bonjour,
J'ai une base avec deux colonnes (Parents et Enfants).
Je voudrais créer une liste déroulante avec la liste des parents et lorsqu'on choisi dans la liste un Parents on affiche les enfants de ce Parents.
J'ai commencé à le faire en utilisant des formules mais je suis complétement bloqué, car il y a une erreur dans ma formule que je n'arrive pas à détecter.
Je vous joins mon fichier: https://www.cjoint.com/?DEnqMuHLom5

Et par avance, merci beaucoup pour votre aide!!




Partager son savoir est la meilleure façon d'apprendre!

11 réponses

skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
13 mai 2014 à 16:27
J'ai déjà ralisé un projet similaire.

Si vous voulez je peux vous expliquer comment faire (mais vous devrez le faire même) Il vous faudra des conaissences en VBA, ou avoir envie d'apprendre (je veux bien vous expliquer le début le reste faudra utilisé des tutos)

Ou si non je peux le faire pour vous.
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
Modifié par Mike-31 le 13/05/2014 à 16:34
Bonjour,

peut on avoir plusieurs enfants pour un nom de parent, et s'il y a plusieurs enfants, le nom des parents peut il être sur plusieurs lignes ou le prénom des enfants se trouve sur plusieurs colonnes

mais pas forcement besoin de VBA

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
13 mai 2014 à 16:45
J'imagine , tout ce que j'ai dit c'est que moi je l'ai fait en VBA :)
0
senecartour Messages postés 325 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 29 octobre 2020 3
13 mai 2014 à 16:41
Oui, l'objectif c'est de ssavoir comment le faire par moi même. D'ailleurs j'ai commencé la démarche:
-Nommer les plages pour les plages Parents et Enfants
-Créer la liste déroulante des parents
-Mais c'est au niveau de ma formule que je rencontre une erreur que je n'arrive pas trouver:
=SI(LIGNES($1:1)<=NB.SI(Parents;$D$17);INDEX(Enfants;PETITE.VALEUR(SI(Parents=$D$17;LIGNE(INDIRECT("1:"&LIGNES(Enfants))));LIGNES($1:1)));"")

C'est gentil de vouloir m'expliquer comment faire!
Merci d'avance!
0
senecartour Messages postés 325 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 29 octobre 2020 3
13 mai 2014 à 16:44
Oui bien sûr on peut avoir plusieurs enfants pour un parents.Non pas forcément besoin de VBA avec des formules excel cela peut fonctionner. D'ailleurs j'ai commencé à le mettre en place mais c'est au niveau de ma formule qui beug:
Vous pouvez vous référencer du fichier joint: https://www.cjoint.com/?DEnqMuHLom5

Merci d'avance!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
13 mai 2014 à 17:17
pour que ça ne "beug" pas, il faut entre la formule en E2:E4 comme une matricielle, c'est à dire avec la touche enter en maintenant les touches ctrl et shift enfoncées.
crdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
13 mai 2014 à 16:48
Pour le formule je peut pas vraiment vous aider. Il me faudrait un aperçu du classeur, et personellement je préfère une simple macro à une formule compex.

Si vous voulez que je vous l'explique en VBA, il faut que je connaisse quel est votre niveau par rapport à ce langage.

Si vous êtes complètement débutant vous pouvez y arriver mais ça prendra peut-être un peut de temps :)
0
senecartour Messages postés 325 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 29 octobre 2020 3
13 mai 2014 à 17:18
Ok, j'aimerais bien! je m'y connais un peu en VBA. Si ce n'est pas trop complex, je peux y arriver!
Merci d'avance
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
Modifié par Mike-31 le 13/05/2014 à 17:35
Re,

en E17 colle cette formule

=SI(LIGNES($1:1)<=NB.SI(Parents;$D$17);INDEX(Enfants;PETITE.VALEUR(SI(Parents=$D$17;LIGNE(INDIRECT("1:"&LIGNES(Parents))));LIGNES($1:1)));"")

comme le dit mon ami Vaucluse que je salue, confirme la formule alors qu'elle est active en cliquant en même temps sur les trois touches du clavier Ctrl, Shift et Entrée

si tu fais bien la formule se placera entre {}

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
senecartour Messages postés 325 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 29 octobre 2020 3
13 mai 2014 à 20:22
J'ai copier coller la formule en E17 comme conseillé, les {} apparaissent bien mais il y a toujours une erreur.
En effet, après d'un parent, toutes les fils ne s'affiche pas. En effet, j'avais le même problème.
Pourriez-vous regarder le fichier directement et me dire ce qu'il ne fonctionne pas?

https://www.cjoint.com/?DEnuvHNT7K5

Merci d'avance
0
senecartour Messages postés 325 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 29 octobre 2020 3
13 mai 2014 à 20:30
Vaucluse et Mike-31, merci beaucoup!
Donc ma formule était bonne sauf qu'il fallait les mettes entre {} et les copier en E17 et E2:E10.
Ouff!!! une bonne leçon en tout cas!!
Merci infiniment
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
13 mai 2014 à 20:38
Re,

non il ne faut pas mettre les {}

il doivent se mettre seuls lors de la confirmation de la formule, pour cela soit clic sur la cellule contenant la formule, et clic sur la formule de la barre des formules ou double clic sur la cellule contenant la formule, ensuite il faut cliquer en même temps sur les trois touches Ctrl, Shift et Entrée et les deux accolades apparaissent {}
ensuite il faut incrémenter la cellule vers le bas comme dans l'exemple plage que j'ai mise en jaune

https://www.cjoint.com/?DEnuITMyNE0
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
14 mai 2014 à 08:40
DAc plus besoin de VBA bonne journée :)
0