Récupérer une référence d'un élément sélectionné dans une liste déroulante

Résolu
keopsk Messages postés 96 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 9 mars 2007 - 21 févr. 2007 à 19:35
keopsk Messages postés 96 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 9 mars 2007 - 22 févr. 2007 à 12:30
Bonjour,

J'ai une liste de référence que je dois afficher dans une liste déroulante. Jusqu'à présent j''utilise une combobox pour sélectionner un élément. Pour savoir quel élément a été selectionné je récupére tout simplement son index.. Mon problème actuelle est que, désormais, chaque élément de liste est identifiable par une référence unique. Au lieu de récupérer l'index je dois récupérer la réference de l'élement sélectionnné.. Visiblement  la combobox n'est pas adaptée à ce problème..

Qq saurait s'il existe un autre objet permettant de résoudre mon pb.. je peux toujours garder ma combobox et gérer la correspondance entre les index et les références des élements par code. mais s'il existe un objet pouvant faire cela c'est mieux

merci d'avance

12 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
22 févr. 2007 à 10:32
Une autre solution, pas forcément géniale non plus (pourquoi les ComboBox d'ACCESS n'exitent pas en VB, je vous le demande !), mais pourquoi pas ...

Ta ComboBox est alimentée je suppose, puisque tu parles d'index, par une méthode addItem.
Tu pourrais créer une 2ème ComboBox que tu laisses en invisible, qui est alimentée en même temps que ta première avec cette fois ta référence.

Un truc du genre :
Boucle d'alimentation (For, Do While, ce que tu veux)
   ComboRéférence.additem Référence
   ComboLibellé.additem Libellé
Boucle
De cette manière, un même numéro d'index désignera la même chose dans les deux comboBox. Et quand dans la combo libellé, tu en sélectionneras un, tu vas récupérer la référence dans la combo référence en utilisant l'index.

Molenn
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
21 févr. 2007 à 19:46
Salut,

Est-ce cel que tu veux faire ?

Private Sub Command1_click()
Toto = combo1.Text
End Sub

A+
Exploreur
0
keopsk Messages postés 96 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 9 mars 2007
21 févr. 2007 à 19:56
Bonjour Exploreur, finablement toujours serviable,

La commande combo1.text va me retourner le texte (visible) de l'élément selectionné.

Peut être que ma question n'était pas très claire.
Je dispose d'un tableau de 2 colonnes (col 1 référence, col 2 libellé). Dans la combo je dois afficher les libéllés. Lorsque je sélectionne un libellé je dois récupéréer sa référence.. . Avant je récupérais l'index de l'élément séléctionné pour savoir quel libellé a été sélectionné, mais il y a des modif dans les spéc.




merci encore
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
21 févr. 2007 à 20:19
Salut,

J'avais pas bien compris alors...Mes excuses

A+
Exploreur
0

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

Posez votre question
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
21 févr. 2007 à 21:22
Bonsoir Keops,
Bonsoir Exploreur,

Je dirais qu'exploreur a fort bien répondu.
Sous VB6 (sous-forum dans lequel tu as "posté") les combobox ne peuvent posséder plus d'une colonne !!!
Alors : sous quoi, finalement, développes-tu ?
0
keopsk Messages postés 96 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 9 mars 2007
21 févr. 2007 à 21:30
Bonsoir  jmfmarques

Justement mon problème vient du fait que les combo ne peuvent pas posséder plus d'une colonne.
La solution serait de trouver une autre objet sinon , comme je disais plus haut , faire les correspondance index/reférence pas le code

je développe en VB 6 (SP5)

Merci pour ta réponse
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
21 févr. 2007 à 21:36
Ben alors !
Utilise une listview, pardi !
Mais si tu tiens à continuer avec une Combo et que tu ne crains pas de faire un peu ramer ton appli :
Envoie donc dans ta Combo tes deux données séparées par un tab (ce qui t'obligeras ensuite, à chaque lecture, à "éclater" à nouveau en 2 parties).
Où est donc ton problème ?

Ceci dit : l'utilisation d'une listview me parait tout-à-fait conseillée ...
0
keopsk Messages postés 96 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 9 mars 2007
21 févr. 2007 à 23:00
Merci pour ta réponse,

la liste view n'est de la même apparence graphique que la combo .. sinon ça pourait marcher
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
21 févr. 2007 à 23:04
Su tu n'aimes pas la listview et que (je te le répête) tu  tiens à rester avec une combobox, qu'à cela ne tienne !
Je t'ai dit plus haut comment faire (sépare par des tabs puis gère à la lecture en "éclatant" par rapport à tes tabs).
C'est un choix à faire et que TU devras faire .
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
22 févr. 2007 à 10:47
Salut Keopsk,

Je suis du même avis(avis personnel) que Jmfmarques en ce concerne le Listview...Facile d'utilisation...

A+
Exploreur
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
22 févr. 2007 à 11:46
Si c'est pour des raisons d'occupation d'affichage, il te suffit d'ajouter une scrollbar verticale et de jouer avec pour augmanter ou diminuer à la demande la hauteur de la listview.

Pour des raisons de commodité, tu veux enfin la reréduire à son minimum lors de l'événement Form-MouseMove....
0
keopsk Messages postés 96 Date d'inscription jeudi 18 avril 2002 Statut Membre Dernière intervention 9 mars 2007
22 févr. 2007 à 12:30
Merci à tout le monde d'avoir participer à mon problème. La solution qui me parait la plus simple est celle de Molenn, même si le fait d'ajouter des objets graphiques pour ce genre de manipulation n'est pas très recommandable... Mais je pense que c'est la solution la plus simple

à bientôt
0