Posez votre question Signaler

Excel/VBA - Remplir ComboBox avec valeurs [Résolu]

RussellD 44Messages postés 18 mars 2010Date d'inscription 6 septembre 2010Dernière intervention - Dernière réponse le 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
Lire la suite 

Excel/VBA - Remplir ComboBox avec valeurs »

8 réponses
Réponse
+2
moins plus
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é?
pijaku- 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
RussellD- 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?
Ajouter un commentaire
Réponse
+1
moins plus
Je ne sais pas réellement en quoi consistent tous les évènements... Je teste et je regarde celui qui fonctionne. J'ai cru naïvement qu'en changeant d'évènement cela aurait pu fonctionner. De ce fait, je t'ai induit en erreur. Tu étais bien parti. Il convient effectivement de combiner ce que tu as fait (ton évènement était bon : WorkBooks_Open) et mon code :
Private Sub Workbook_Open()
Sheets("Feuil1").ComboBox1.Clear
Dim i As Integer
For i = 1 To 6
Sheets("Feuil1").ComboBox1.AddItem Sheets("Feuil1").Cells(i, 17)
Next i
End Sub
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
Essaye de faire fonctionner ta combobox avec l' évènement DropButtonClick(). Le code doit ressembler à cela :
Private Sub ComboBox1_DropButtonClick() 
ComboBox1.Clear 
Dim i As Integer 
With Sheets("Déperditions") 
For i = 1 To 4 
ComboBox1.AddItem .Cells(i, 17) 
Next i 
End With 
End Sub 

Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Ajouter un commentaire
Réponse
+0
moins plus
Re,

j'ai eu la même idée que toi, j'ai essayé le code que tu viens d'écrire. Mais cela ne fonctionne pas, et il me met à chaque fois "Objet Requis" en erreur et en parlant du ComboBox1.. C'est étrange car ton code marchait très bien avec l'évenement DropButtonClick (mis a part le petit pb dont on a parlé..)
En gros c'est comme si au moment où le fichier Excel s'ouvrait, il ne detectait pas la présence de ma combobox, c'est bizarre...
Je continue à chercher, en tout cas merci beaucoup pour ton aide.
Si je trouve une solution je la ferai bien sur partager

Cordialement
Ajouter un commentaire
Réponse
+0
moins plus
Cela fonctionne bien chez moi, vérifie le nom de tes feuilles dans :

Private Sub Workbook_Open()
Sheets("Feuil1").ComboBox1.Clear
Dim i As Integer
For i = 1 To 6
Sheets("Feuil1").ComboBox1.AddItem Sheets("Feuil1").Cells(i, 17)
Next i
End Sub
Ajouter un commentaire
Réponse
+0
moins plus
: - ) ca marche nikel !
En effet je n'avais pas précisé la feuille dans laquelle se trouvait ma combobox, c'est pour ça qu'il ne la trouvait pas. Tout est réglé maintenant.
En tout cas merci beaucoup pour ton aide pijaku, a bientot !

Cordialement
Ajouter un commentaire
Ce document intitulé « Excel/VBA - Remplir ComboBox avec valeurs » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?