Extraire un nom d'une liste deroulante [Résolu/Fermé]

Signaler
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016
-
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016
-
Bonjour,

J'ai inséré un objet ( Zone de liste déroulante ( contrôle de formulaire) auquel j'ai associé une plage d'entrée contenant une liste de nom et une cellule liée. Je suis très contant, çà marche.

L'idée à présent, c'est de récupérer le nom sélectionné pour servir de base de raisonnement/ de calcul, pour alimenter des cellules.

Et là, je sèche.

Merci par avance.

7 réponses

Messages postés
17259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 octobre 2020
4 297
Bonjour,

je sèche également parce que tu n'expliques pas ce que tu veux faire à partir de la liste
Bonjour Mike,

Je veux renseigner une ou des cellule en utilisant la fonction - =somme.si(a1:a10;c5;b1:b5)
C5 étant bien entendu là ou j'ai placé ma liste déroulante.

Mais peut être une macro est plus efficiente. Je suis ouvert à toutes solutions
Messages postés
17259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 octobre 2020
4 297
Re,

Il ne faut pas prendre C5 mais la cellule liée
quel est ta plage d'entrée et ta cellule liée
Ca ne marche pas mieux.
Une précision toutefois: Les Données ne sont pas sur la même feuille que celle ou j'ai inséré l'objet liste déroulante
Messages postés
17259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 octobre 2020
4 297
Re,

tu n'es pas très généreux en explications, si tu veux de l'aide il être plus bavard
le mieux est de mettre à notre disposition un exemple de fichier anonymisé que tu peux joindre à partir de ce lien
https://www.cjoint.com/
http://www.cjoint.com/c/EGhp4XGqEAE
Voilà le ficher. Je l' ai épuré.
Donc dans la feuille "DONNEE" : Se trouve la liste (colonne C) des noms qui apparaissent.
dans l'objet "liste déroulante inséré dans la FEUILLE "FICHE"
L'idée donc c'est de voir apparaître dans la cellule C2 de la feuille "FICHE" le nombre (colonne 1 feuille "DONNEE" qui est associé au nom qui est sélectionné dans la liste déroulante.

Voilà donc plus d'info, mais pas sûr d'avoir gagné en clarté.
Messages postés
17259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 octobre 2020
4 297
Re,

A la place de créer une zone combinée, il est préférable de créer une liste de validation en C3 (Données/Validation de données)
ensuite une recherchev à la quelle j'ai ajouté une gestion d'erreur dans le cas de données manquante
https://www.cjoint.com/c/EGhqLStnDKj
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

Il y a un problème.
Lorsque je veux changer les zones, sans changer la formule. Ca ne fonctionne pas.
Par ailleurs, j'ai essayé de comprendre le cheminement, mais dans la cellule C3 il ne se passe rien. Pourtant j'ai compris que vous aviez ordonné une validation des données. Il me semble que je devrai retrouver une écriture
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

Je tiens aussi à vous remercier pour le temps que vous consacrez
Messages postés
17259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 octobre 2020
4 297
Re,

Ce n'est pas compliqué, pour créer la liste de validation, active la cellule souhaitée dans ton exemple C3 et onglet Données/module Outils de données/Validation de données/ sélectionne Liste et dans source pointe ta plage de données dans l'exemple feuille DONNEE plage C2:C10 ce qui va donner la formule
=DONNEE!$C$2:$C$10

dans les cellules suivantes il s'agit de la fonction RECHERCHEV
=RECHERCHEV($C$3;DONNEE!$C$2:$G$10;2;0)
il suffit de changer pour les lignes suivantes l'index colonne ;2; par 3 puis 4 etc
et pour éviter l"avoir un message d'erreur dans le cas de cellule non renseignée j'ai inséré une gestion d'erreur SIERREUR( en début et ce qui faut faire si erreur ;"") c'est à dire rien
ce qui donne pour C4 en C5 changer l'index colonne etc
=SIERREUR(RECHERCHEV($C$3;DONNEE!$C$2:$G$10;2;0);"")
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

Je regrette, mais quelque chose m'échappe.
J'ai fait la chose suivante:
Récupérer la colonne A en lieu et place de la colonne C dans feuille DONNEE.
J'ai créé une liste de validation en C2( feuille "FICHE") =DONNEE!$A$2:$A$10
Dans la cellule C3 J'ai entrée la formule: =SIERREUR(RECHERCHEV($c$2;DONNEE!$b$2:$g$10;3;0);"")
N.B: J'ai testé avec ... 2;0);"") ...1;0);"") etc et ça ne marche pas.

Ou est l'erreur?
Messages postés
17259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 octobre 2020
4 297
Re,
Il faut que la première colonne de ta matrice figure dans la RECHERCHEV
si la colonne Nom est en colonne A soit A2:A10
il faut que ta matrice soit DONNEE!$A$2:$g$10 et toi tu as mis DONNEE!$b$2:$g$10
il faut écrire
=SIERREUR(RECHERCHEV($c$2;DONNEE!$A$2:$g$10;3;0);"")


A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

J'ai compris! Ca ne marche pas parce que je testai votre formule sur le document que vous m'aviez transmis.

J'ai refait le test sur mon fichier. Cest OK. Oui parce que la formule : =SIERREUR(RECHERCHEV($c$2;DONNEE!$A$2:$g$10;3;0);"") je l'avais déjà essayé. Sans succès.

Grand merci et encore pardon pour cette boucle d'incompréhension.
Une dernière sollicitation: SI je veux aller bien au delà de la ligne 10 et sans limite, y'a -til un code spécifique?
Messages postés
17259
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 octobre 2020
4 297
Re,

le plus simple pour tes débuts est de modifier la limite de ta matrice et changer 10 en 20 ou plus.
ou encore mieux nommer tes plages exemple
A2:A10 nommée Nom et la matrice A2:G10 nommée par exemple List
la formule devient
pour la liste de validation =Nom
et pour la RECHERCHEV
=SIERREUR(RECHERCHEV($c$2;List;3;0);"")

Bien sur il est possible de définir automatiquement la borne de fin avec des formules complexes
pour la liste de validation
=INDIRECT("DONNEE!$C$2:"&ADRESSE(MAX(EQUIV(9^9;DONNEE!B:B);EQUIV("z";DONNEE!C:C));3))

et pour la RECHERCHEV
=SIERREUR(RECHERCHEV($C$3;INDIRECT("DONNEE!$C$2:"&ADRESSE(MAX(EQUIV(9^9;DONNEE!G:G);EQUIV("z";DONNEE!G:G));7));2;0);"")
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

Merci infiniment pour toutes ces infos le temps que vous avez pris pour me répondre.

A bientôt! Qui c'est?