Souci avec un ComboBox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

J'ai un problème avec un ComboBox.

Si j'écris, dans une macro dans un module (non pas de feuille) :

Worksheets(1).OLEObjects("ComboBox1").Visible = True/False 'ça marche
Worksheets(1).OLEObjects("ComboBox1").Object.ListIndex = 0 'ça marche

Mais pour purger la liste :
Worksheets(1).OLEObjects("ComboBox1").Object.ListFillRange = "" 'ça ne marche pas

Et pour la remplir avec le contenu d'une plage qui se nomme "plage" :
Worksheets(1).OLEObjects("ComboBox1").Object.ListFillRange = plage.Address 'ça ne marche pas

Quelqu'un pourrait me venir en aide ?

Merci d'avance.
 
Re : Souci avec un ComboBox

Salut Magic_Doctor,

As tu essayé d'indiquer uniquement «plage» au lieu de «plage.address»?

Quant à purger, as tu essayé des arguments du type «null» ou «nothing» ? Sinon une rustine un peu sale serait de remplacer la plage par une plage vide.

Ce je sont que des idées, je ne peux pas tester dans l'immédiat sur Excel.
 
Re : Souci avec un ComboBox

Bonsoir Stakov,

J'ai essayé avec :
Worksheets(1).OLEObjects("ComboBox1").Object.ListF illRange = plage
et même (sait-on jamais...) Worksheets(1).OLEObjects("ComboBox1").Object.ListF illRange = [plage]

Ça plante !

Je pense que pour un problème aussi simple (car il l'est !) il doit y avoir une solution simple sans passer par des bidouillages à la mords-moi-le-nœud.
Mais c'est incroyable que la solution soit si peu évidente à trouver. C'est à croire que les ComboBox sont en fait très peu utilisés...

Mais merci pour ton intérêt.
 
Dernière édition:
Re : Souci avec un ComboBox

Bonjour Pierrot93,

Merci pour ta réponse. Ça avance !
J'ai essayé ta solution et ai dû faire une petite modification pour que ça marche (en tout cas chez moi) :
VB:
o.ListFillRange = plage.Address
Ce set n'est pas toujours très clair. Cet intemporel set comme son homonyme immortel de la Bible !

Mais avouons que tout ça est un peu tordu :
Je veux voir ou occulter le ComboBox, je n'ai pas à le déclarer.
Je veux sélectionner tel item du ComboBox, je n'ai pas à le déclarer.
Je veux modifier la liste du ComboBox, et là il faut que je le déclare...!!!

Une histoire à fumer la moquette avec un truc très fort au milieu !

Mais un grand merci tout de même.
 
Re : Souci avec un ComboBox

Bonjour Pierrot93,

Bizarrement, chez moi il n'y a que comme ça que ça fonctionne :

VB:
Sub ActionMiFrase()

Dim nblgn As Byte, plage As Range, combo As OLEObject

nblgn = NbMots([MiFrase])
Set plage = [ListePos].Resize(nblgn)
Set combo = Worksheets(1).OLEObjects("ComboBox1")

combo.ListFillRange = ""
combo.ListFillRange = plage.Address
combo.Object.ListIndex = 0 'là c'est du délire (après combo il faut mettre Object...)

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
332
Réponses
10
Affichages
661
Réponses
40
Affichages
2 K
Retour