Récupérer valeur ComboBox

[Résolu]
Signaler
Messages postés
112
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
14 mai 2021
-
Messages postés
112
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
14 mai 2021
-
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
239
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
112
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
14 mai 2021
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
239
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
239
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
112
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
14 mai 2021
1
Merci pour tes infos :)