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

Signaler
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
9 mars 2007
-
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
9 mars 2007
-
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

Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
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
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Est-ce cel que tu veux faire ?

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

A+
Exploreur
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
9 mars 2007

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
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

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

A+
Exploreur
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
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 ?
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
9 mars 2007

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
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
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 ...
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
9 mars 2007

Merci pour ta réponse,

la liste view n'est de la même apparence graphique que la combo .. sinon ça pourait marcher
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
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 .
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut Keopsk,

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

A+
Exploreur
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
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....
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
9 mars 2007

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