Récupérer valeur ComboBox

Résolu
pitipilot Messages postés 112 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 14 mai 2021 - 19 juin 2013 à 16:29
pitipilot Messages postés 112 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 14 mai 2021 - 20 juin 2013 à 15:44
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 juin 2013 à 10:38
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.
3
pitipilot Messages postés 112 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 14 mai 2021 1
20 juin 2013 à 08:09
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 juin 2013 à 10:50
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 juin 2013 à 10:55
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.
0

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

Posez votre question
pitipilot Messages postés 112 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 14 mai 2021 1
20 juin 2013 à 15:44
Merci pour tes infos :)
0
Rejoignez-nous