VBA remplir ComboBox

Fermé
tut - 2 juil. 2010 à 10:21
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 2 juil. 2010 à 10:52
Bonjour,

J'ai une feuille excel et j'y ai mis nue comboBox
Je voudrais initialiser la comboBox et lui rentrer la liste des chiffres de 1 à 5

Je sais le faire avec une userForm :

UserForm_initialize

For i=1 to 5
ComboBox1.addItem i
Next i

End sub

Le problème c'est que comme je suis dans une feuille excel et pas dans la userform, je n'arrives pas à trouver comment doit s'appler ma procédure.

Merci d'avance pour votre aide!

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 748
2 juil. 2010 à 10:52
Bonjour,
Si ta ComboBox a bien été créée via la barre d'outils "boîte à outils contrôles", tu peux créer ta procédure dans l'évènement de WorkSheet "Activate". Le code serait :

Private Sub Worksheet_Activate()
Dim i As Integer
ComboBox1.Clear 'vide la ComboBox
For i = 1 To 5
ComboBox1.AddItem i 'remplit la Combo
Next
End Sub

cela te permet de compléter la ComboBox à l'activation de ta feuille.
Le petit souci est qu'à l'ouverture du classeur, si ta Combo est dans la feuille "d'ouverture", elle ne se remplira pas. Deux solutions :
- soit l'utilisateur change de feuille et reviens sur celle-ci,
- soit tu le fais automatiquement, en mettant une procédure à l'ouverture du classeur (évènement WorkBooks_Open) comme ceci :

Private Sub Workbook_Open()
Sheets("Feuil2").Activate
Sheets("Feuil1").Activate
End Sub

N'hésite pas à revenir en cas de souci.
0