Listes déroulantes

M

Michel

Guest
Débutant sous excel, j'aimerai créer un classeur dans lequel à partir d'un menu déroulant, je puisse afficher tous les données d'une ligne à partir d'un choix dans une cellule. Exemple , si je clique sur une cellule déroulant dans laquelle se trouve une valeur (Dupont), je désire voir apparaîte sur une ligne, le prémon, adresse, ect

Merci d'avance pour vos réponse
 
R

Rai

Guest
Bonjour Michel,

Alors, on va tenter sans envoi de fichier Exemple.

Considérons que :
Ligne 10 à Ligne 6O contiennent tes données (ta base de données).
ColA : Nom, ColB : Prénom .... puis le reste jusqu'à la colonne E

En A1 on va placer la liste déroulante permettant de choisir un nom.
Alors tu cliques sur A1, puis tu vas dans
Données / Validation - Options (onlget)
tu choisis : Catgéorie : Liste et Source : =$A$10:$A$60

En B1 tu places la formule suivante :
=RECHERCHEV($A$1;$A$10:$E$60;COLONNE();FAUX)
et tu la recopies jusqu'en E1

Voilà, le tour est joué !

Ah oui ! Si aucune valeur n'est renseignée en A1, tu obtiens de jolis #NA un peut partout.
On va corriger ça, en B1 tu places la formule :
=SI(ESTNA(RECHERCHEV($A$1;$A$10:$E$60;COLONNE();FAUX));"";RECHERCHEV($A$1;$A$10:$E$60;COLONNE();FAUX))
et tu la recopies jusqu'en colonne E

YAPLUKA adapter tout ça à tes besoins ;o))

Bonne matinée

Rai
 
R

Rai

Guest
Salut André,

J'suis OK pour ta beauté du geste, tu as raison.


Puisqu'on fait appel à une liste de validation, et que du coup le contenu de A1 existe forcément dans la base, on peut aussi tester si A1 contient quelquechose.
Soit A1<>"" soit ESTVIDE(A1)
=SI(ESTVIDE($A$1);"";RECHERCHEV($A$1;$A$10:$E$60;COLONNE();0))
ou
=SI(A1<>"";RECHERCHEV($A$1;$A$10:$E$60;COLONNE();0);"")
Dans ce dernier cas pas la peine de bloquer A1 avec des $, les cellules se mettant à "" en cascade ;o)

Et connaissant mon aversion pour RECHERCHEV au profit de la combinaison INDEX & EQUIV, je propose la formule suivante :
=SI(A1<>"";INDEX(B10:B60;EQUIV($A$1;$A10:$A60;0));"")
toujours à placer en B1 et à recopier sur la plage.

Cette fois-ci, on a fait un tour sympa des possibilités de recherche, non ?

Bonne matinée, et au plaisir de "papoter" techniques ;o)
c'est toujours instructif

Rai
 
A

andré

Guest
Resalut Rai,

La fonction ESTVIDE() est encore plus courte, d'accord, mais elle a un petit inconvénient.

Si en A1 tu encodes un nom quelconque, sans faire appel à la liste de validation, et que ce nom n'existe pas dans la plage de recherche, tu auras toujours un message d'erreur.

C'est pourquoi je lui préfère le NB.SI

Ândré.
 
R

Rai

Guest
re- André,

Voilà que nous squattons le fil de ce pôôôvre Michel qui voualit juste une solution rapide ;o))

Je suis, encore une fois, tout à fait d'accord avec ton propos.
D'autant plus que je n'avais jamais envisagé le test de la présence de l'élément cherché dans la base sous cet angle là.
J'aime bien pour 2 raisons :
1. c'est élégant
2. ça me permet de proposer plusieurs solutions à mes stagiaires, d'où un intérêt pédagogique certain

C'est une des raisons qui m'amène à fréquenter les forums avec grand plaisir, on en apprend tous les jours. c'est à se demander si Excel n'est paas uen école d'humilité ...

Bye

Rai
 
A

andré

Guest
Re

Je compare souvent Excel à une recette de cusine.

Avec les mêmes ingrédients l'un se voit attribuer 3 étoiles, l'autre n'exploite q'un bui-bui (étant belge, je dirais une friture).

Il faut trois éléments : la connaissance de l'existence des fonctions, leur syntaxe et puis surtout beaucoup d'magination pour les choisir et les combiner.

Ândré.
 
R

Rai

Guest
Lol,
La cuisine aussi est une leçon d'humilité ... quand on n'est pas proche de l'humiliation 8-[)


Quand à la cuisine Belge ... depuis qu'un ami de Waterloo me l'a vantée ... faudra que je fasse un tour là-bas.

Rai
 

Discussions similaires

Réponses
8
Affichages
359

Statistiques des forums

Discussions
312 490
Messages
2 088 879
Membres
103 981
dernier inscrit
vinsalcatraz