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

Signaler
Messages postés
57
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
6 septembre 2010
-
Messages postés
57
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
6 septembre 2010
-
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

Messages postés
57
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
6 septembre 2010
7
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
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
Messages postés
57
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
6 septembre 2010
7
Re

Cela ne fonctionne pas, les valeurs ne se listent même plus dans le combobox.. Qu'est ce que l'évenement BeforeDropAndPaste exactement?
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
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
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
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? --
Messages postés
57
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
6 septembre 2010
7
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
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 599
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
Messages postés
57
Date d'inscription
jeudi 18 mars 2010
Statut
Membre
Dernière intervention
6 septembre 2010
7
: - ) 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