Initialisation des combobox

Boulgor Messages postés 24 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 4 avril 2013 - 24 avril 2009 à 09:49
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 - 25 avril 2009 à 00:57
Salut à tous,
J'ai crée sur un document plusieurs combobox qui figure sur la première feuille de celui-ci.
Chaques combobox (3 au total), présente une liste déroulante des pages de mon documennt avec un bouton d'action à côté de chaque combobox qui amène l'utilisateur à la page sélectionné.

Le seul problème, c'est qu'au lancement du document, la liste déroulante de la combobox est vide et n'apparait qu'après avoir cliqué sur le bouton d'action "Go".

Voila le code de la combobox:

Private Sub Combobox1_Click()

     ComboBox1.AddItem Sheets("feuille 1").Name
     ComboBox1.AddItem Sheets("feuille 2").Name
     ComboBox1.AddItem Sheets("feuille 3").Name

End Sub

Voila le code du bouton d'action associé:

Private Sub CommandButton1_Click()

   If ComboBox1.Text = "" Then
         MsgBox ("Choisissez une feuille"), vbInformation, "IDAE"
        Else
         nom = ComboBox1.Text
         Sheets(nom).Select

   End If

   ComboBox1.Clear
   ComboBox1.AddItem Sheets("feuille 1").Name
   ComboBox1.AddItem Sheets("feuille 2").Name
   ComboBox1.AddItem Sheets("feuille 3").Name

End Sub

La fin du code du bouton d'action est le seul moyen que j'ai trouvé pour éliminer les doublons dans la combobox^^.
Donc si qq1 pouvait m'éclairer là-dessus aussi, merci d'avance.

4 réponses

cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 1
24 avril 2009 à 12:15
Salut,

Pour initialiser une ComboBox tu as deux solutions :

   - Soit tu vas dans l'interface de conception de ton formulaire (sous Visual Studio, tu fais Maj + F7). Dans celle-ci, tu sélectionne ton ComboBox, et tu regardes la propriété Items. Tu cliques sur les trois petits points à côté de la propriété et tu peux ajouter les lignes que tu veux.

   - Soit tu l'initialise au démarrage de ton formulaire. Ici, tu as mis

Private Sub Combobox1_Click()

     ComboBox1.AddItem Sheets("feuille 1").Name
     ComboBox1.AddItem Sheets("feuille 2").Name
     ComboBox1.AddItem Sheets("feuille 3").Name

End Sub

   - Or, on voit que tu n'as mis aucun code pour initialiser ton controle. Je ne connais pas la syntaxe VBA mais je te conseilles de faire ça :

   - Au démarrage du formulaire/du soft : ComboBox1.Additem ...
   - Lors du click sur le bouton, tu fais

If ComboBox1.Text = "" Then

         MsgBox ("Choisissez une feuille"), vbInformation, "IDAE"

        Else

         nom = ComboBox1.Text
         Sheets(nom).Select

   End If

En espérant t'avoir aidé,

-Papymuzo-
0
Boulgor Messages postés 24 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 4 avril 2013
24 avril 2009 à 14:53
J'ai bien un peu tout essayé sa ne fonctionne pas.
Il n'y a pas un code en particulier a taper pour que les listes déroulantes s'initialise d'elle même sans que j'ai besoin de cliquer sur ce fameux bouton d'action "Go"?
0
cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 1
24 avril 2009 à 14:56
Il y a surement un événement qui se déclenche lors de l'ouverture de ton soft ?

Un peu comme Form_Load ?
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
25 avril 2009 à 00:57
Il me semble qu'il faut installer un Combo par feuille, pour selectionner les autres feuilles.
Le chargement de ces combos se fera à l'ouverture du classeur, donc mise en places de celles-ci, ecriture des codes dans les modules appropriés, sauvegarde et fermeture du classeur puis à la réouverture de celui-ci, tout sera prêt d'emploi.

' Module du classeur actif, "ThisWorkBook" du projet
Private Sub Workbook_Open()

      ' init du combo dans la feuille 1
     Sheets(1).ComboBox1.AddItem Sheets(2).Name
     Sheets(1).ComboBox1.AddItem Sheets(3).Name

     ' init du combo dans la feuille 2
     Sheets(2).ComboBox2.AddItem Sheets(1).Name
     Sheets(2).ComboBox2.AddItem Sheets(3).Name

     ' init du combo dans la feuille 3
     Sheets(3).ComboBox3.AddItem Sheets(1).Name
     Sheets(3).ComboBox3.AddItem Sheets(2).Name

' Module de la feuille 1
Private Sub ComboBox1_Change()
    Sheets(ComboBox1.Text).Select
End Sub

' Module de la feuille 2
Private Sub ComboBox2_Change()
    Sheets(ComboBox2.Text).Select
End Sub

' Module de la feuille 3
Private Sub ComboBox3_Change()
    Sheets(ComboBox3.Text).Select
End Sub

End Sub

CNTJC
0
Rejoignez-nous