Garder la sélection dans une liste déroulante

Résolu
Quincaill Messages postés 4 Statut Membre -  
Quincaill Messages postés 4 Statut Membre -
Bonjour,
Je suis vraiment pas forte en VBA et j'ai un problème suite à un bout de code que j'ai trouvé sur un forum. Je veux faire une liste déroulante avec les noms des onglets de mon classeur excel. J'ai donc tapé ce code :

Private Sub CBox1_DropButtonClick()
Dim onglet As Worksheet
CBox1.Clear
For Each onglet In ThisWorkbook.Worksheets
CBox1.AddItem onglet.Name
Next onglet
End Sub

Le problème est donc qu'avec le "CBox1.Clear", quand que je sélectionne un onglet dans la liste déroulante, il ne reste pas affiché. Et si je supprime le "CBox1.Clear" A chaque fois que je fait dérouler la liste une nouveau jeu de nom d'onglet s'ajoute ! Comme ça :


Merci de l'aide que vous m'apporterez !

Quincall'
A voir également:

1 réponse

pijaku Messages postés 13513 Statut Modérateur 2 763
 
Bonjour,

Ta liste déroulante est située ou?
Dans une feuille?
Dans un UserForm?
0
Quincaill Messages postés 4 Statut Membre
 
Elle est située dans une UserForm.
0
pijaku Messages postés 13513 Statut Modérateur 2 763 > Quincaill Messages postés 4 Statut Membre
 
Alors, tu dois remplir ta combobox (le code donné plus haut) dans l'événement Initialize de cet UserForm.
Private Sub UserForm_Initialize()
Dim onglet As Worksheet
   CBox1.Clear
   For Each onglet In ThisWorkbook.Worksheets
      CBox1.AddItem onglet.Name
   Next onglet
End Sub
0
Quincaill Messages postés 4 Statut Membre
 
Super ! Ca fonctionne trop bien ! Merci beaucoup !!
Mais du coup j'ai pas bien compris ce que ça change de le mettre dans la ComboBox ou dans l'initialisation de la UserForm ?
0
pijaku Messages postés 13513 Statut Modérateur 2 763 > Quincaill Messages postés 4 Statut Membre
 
La question importante lorsque l'on veut utiliser un événement, c'est de savoir quand se déclenche cet événement...
Tu as utilisé DropButtonClick() mais quand se déclenche t'il?
Lors de mes tests, j'ai vu qu'il se déclenchait :
  • lors du clic sur la petite flèche de la combobox
  • lors de la sélection d'une valeur de la combobox

Donc, à chaque sélection, tu relance le code, efface tout et recommence.
A partir de là, il te fallait juste choisir un autre événement.
0
Quincaill Messages postés 4 Statut Membre
 
D'accord, très bien, je ferais attention la prochaine fois !
Encore merci.

Quincaill'
0