capc93
Messages postés1Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention16 septembre 2004
-
16 sept. 2004 à 11:30
Boulet90
Messages postés3Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention15 février 2006
-
15 févr. 2006 à 21:30
Bonjour,
Je débute en VBA/ Excel et depuis hier je bute sur un truc qui je suis sure est simple mais que je n'arrive pas surmonter...
J'ai fais une mini base Excel en feuill3 qui a cette tete la:
Nom code adherent Numéro adhérent
-------|--------------|---------------
dupont 04510 12345678910
durant 02500 10987654321
Mon problème est de récupérer ces valeurs dans une autre feuille.
J'ai mis un menu déroulant grace à la barre d'outil formulaire, je lui ai affecté la zone de valeurs correpondant aux noms. Le but est de récupéré les valeurs d'une ligne en fonction du nom choisi dans le menu déroulant.
Par exemple si je selectionne "dupont" dans on menu déroulant, je voudrai récupérer les valeurs "04510" et "12345678910" dans d'autre cellules.
Je n'arrive pas à definir mon menu déroulant en VBA, ni a lui demander ce que je veux faire...
dp_favresa
Messages postés132Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention11 mai 2010 17 sept. 2004 à 08:36
Bonjour,
Le mieux est de choisir 'Zone de liste modifiable' de la 'boîte à outils contrôles' car elle permet d'entrer les 1er caractères de la liste de choix pour se positionner dans la liste.
Dans les propriétés de cette zone de liste, indiquer sous 'ListFillRange' les cellules contenant la liste, sous 'LinkedCell' la cellule recevant le résultat de la liste.
Pour récupérer le contenu d'une des autres cellules, insérer la formule '=EQUIV(cellule de LinkedCell;cellules de ListFillRange;0)' dans une cellule masquée (donne l'index de la ligne du choix).
Enfin, dans la cellule devant récupérer l'autre valeur insérer la formule '=INDEX(cellules contenant autre valeur;cellule contenant EQUIV)'.
Exemple :
B1:B9 noms C1:C9 Numéros
ListFillRange=B1:B9
LinkedCell=D1 retourne le nom choisi dans liste
cellule E1 contient '= EQUIV(D1;B1:B9;0)' retourne N° de la ligne
cellule D2 contient '=INDEX(C1:C9;E1)' retourne Numéros
Bon(ne) courage, développement, salutation...
(choisissez ce qui vous convient) dp
Boulet90
Messages postés3Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention15 février 2006 14 févr. 2006 à 22:03
Je suis aussi débutant et je n'arrive vraimment pas à faire un menu
déroulant avec des données sous excel dans la colone A de la feuille
active, et envoyer la valeur selectionnée dans une cellule de cette
meme feuille.
Merci de m'aider car je désespère de ne pas trouver mon bonheur !!
dp_favresa
Messages postés132Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention11 mai 2010 15 févr. 2006 à 13:47
Bonjour,
L'exemple donné précédemment reste valable, il faut associer une plage à la propriété RowSource du combobox dans le form, une cellule pour recevoir le résultat du choix dans ce combobox par la propriété ControlSource.
La fonction EQUIV cherche la correspondance entre le contenu d'une cellule et celui d'une plage et retourne le N° de ligne.
La fonction INDEX retourne le contenu de la cellule correspondant au N° de ligne de EQUIV dans une plage définie.
Ci-après un lien vers un petit exemple : [www.favresa.ch/Ftp_file/Adherants.xls www.favresa.ch/Ftp_file/Adherents.xls.]
Bon(nes) courage, développement, salutations...
(choisissez ce qui vous convient) dp
Vous n’avez pas trouvé la réponse que vous recherchez ?