Excel/VBA - Remplir ComboBox avec valeurs

Résolu/Fermé
RussellD Messages postés 57 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 6 septembre 2010 - 11 mai 2010 à 11:24
RussellD Messages postés 57 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 6 septembre 2010 - 11 mai 2010 à 15:51
Bonjour à tous,

J'ai sur ma feuille Excel2003 un ComboBox (créé via le mode Création, et pas une liste déroulante créée par Données/Validation). Je souhaiterais que lorsque j'ouvre ma feuille Excel, elle se "charge" avec les valeurs d'une plage de cellules (exemple plage (Q1:Q4)).
Je n'arrive pas à cela, j'ai essayé (sur VBA) :

Private Sub WorkBook_Open()
ComboBox1.RowSource = Sheets("Feuil1").Range("Q1:Q4").Value
End sub


cela ne fonctionne pas.. J'ai essayé en enlevant les "", en enlevant le .Value, bref j'ai bidouillé cette syntaxe sans parvenir à mes fins. Suite à une suggestion sur un autre forum j'ai essayé ceci :

Private Sub WorkBook_Open()
ComboBox1.List = Sheets("Déperditions").Range("Q1:Q4").Value
End Sub


Mais cela ne fonctionne pas, il m'affiche l'erreur "Objet Requis". Quelqu'un a-t-il une idée pour résoudre ce problème?

Merci d'avance pour vos réponses,

Cordialement

6 réponses

RussellD Messages postés 57 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 6 septembre 2010 7
11 mai 2010 à 12:49
Bonjour pijaku,

merci beaucoup, ton astuce fonctionne parfaitement. Néanmoins j'ai un nouveau problème : les valeurs se stockent bien dans la ComboBox, mais lorsque je clique dessus elles ne s'affichent pas dans celle-ci... Est-ce lié à l'évenement utilisé?
5
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
11 mai 2010 à 12:52
Oui c'est normal. Autant pour moi. Utilise l'évènement : BeforeDropOrPaste
Private Sub ComboBox1_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
ComboBox1.Clear
Dim i As Integer
For i = 1 To 6
ComboBox1.AddItem Cells(i, 8)
Next i
End Sub
0
RussellD Messages postés 57 Date d'inscription jeudi 18 mars 2010 Statut Membre Dernière intervention 6 septembre 2010 7
11 mai 2010 à 14:02
Re

Cela ne fonctionne pas, les valeurs ne se listent même plus dans le combobox.. Qu'est ce que l'évenement BeforeDropAndPaste exactement?
0