Récupérer valeur ComboBox [Résolu]

Signaler
Messages postés
111
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
2 juin 2015
-
Messages postés
111
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
2 juin 2015
-
Bonjour,

Dans mon programme je créé automatiquement une combobox avec cette instruction :

    Set Libcb = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=361.5, Top:=268.5, Width:=147, Height:= _
        27.75)


Pour ajouter des éléments dans ma combobox, j'effectue cette instruction :

Libcb.Object.AddItem Element



Par contre je n'arrive pas à récupérer la valeur de ma ComboBox quelqu'un aurait-il une idée ? :)

PS : L'instruction "Libcb.Object.Value" ne fonctionne pas

5 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
14) cela s'écrit de manière moins tortueuse, ainsi :
With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1")
    .Name "toto": .LinkedCell "": .Left = 361.5
    .Top 268.5: .Width 147: .Height = 27.75
   End With
   Set toto = ActiveSheet.Shapes("Toto").DrawingObject.Object
   toto.AddItem "test1"
   toto.AddItem "test2"

et du coup ===>>
MsgBox toto.Value

2) la propriété value d'une combobox ne retourne pas forcément la valeur sélectionnée ! Elle retourne ce qui est inscrit dans la zone de saisie (qui peut être modifiée manuellement) !
Si tu veux la valeur de ce qui a réellement été sélectionné, sans le mloindre risque, utilise plutôt :
If toto.ListIndex >= 0 Then MsgBox toto.List(toto.ListIndex)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
111
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
2 juin 2015
1
Voici la solution pour ceux qui tomberais sur ce topic :

    Set Libcb = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=361.5, Top:=268.5, Width:=147, Height:= _
        27.75)


On nomme la ComboBox
Libcb.name = "Toto"


Libcb.Object.AddItem "test"


MsgBox ActiveSheet.Shapes("Toto").DrawingObject.Object.Value
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Et surtout : écrit comme je te l'ai montré, tu bénéficie de l'intellisense


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Et de tous les évènements, sans faire une classe


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
111
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
2 juin 2015
1
Merci pour tes infos :)