Garder la sélection dans une liste déroulante

Résolu/Fermé
Quincaill Messages postés 4 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 22 juillet 2015 - 22 juil. 2015 à 11:33
Quincaill Messages postés 4 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 22 juillet 2015 - 22 juil. 2015 à 11:59
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'

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 743
22 juil. 2015 à 11:37
Bonjour,

Ta liste déroulante est située ou?
Dans une feuille?
Dans un UserForm?
0
Quincaill Messages postés 4 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 22 juillet 2015
Modifié par Quincaill le 22/07/2015 à 11:39
Elle est située dans une UserForm.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743 > Quincaill Messages postés 4 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 22 juillet 2015
22 juil. 2015 à 11:46
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 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 22 juillet 2015
22 juil. 2015 à 11:52
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 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743 > Quincaill Messages postés 4 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 22 juillet 2015
22 juil. 2015 à 11:57
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 Date d'inscription mercredi 22 juillet 2015 Statut Membre Dernière intervention 22 juillet 2015
22 juil. 2015 à 11:59
D'accord, très bien, je ferais attention la prochaine fois !
Encore merci.

Quincaill'
0