[RESOLU] Sélectionner une feuille (variable) via une Commandbar

antha

XLDnaute Occasionnel
Bonjour à tou(te)s,

Malgré plusieurs recherches sur forums & tuto, je n'arrive pas à trouver de solution.

Je souhaiterais créer des menus personnalisés, et un bouton par feuille du classeur permettant de sélectionner la feuille concernée (107 feuilles au total, répartis en 10 catégories qui constituent les sous-menus). J'ai réussi à créer les sous menus, et les boutons dans chacun, mais je n'arrive pas à trouver la syntaxe pour sélectionner la feuille qui correspond au bouton.

Lorsque que je passe par une fonction (j'ai testé aussi un simple Sheets(j).select):
Code:
   With CBut
            .Style = msoButtonCaption    
            .Caption = Sheets(J).Name   
           .OnAction = SelectFeuille(J)
            .Tag = "SM" & I & "BTN" & J    
        End With
Il me sélectionne la feuille à la création du bouton, mais il ne se passe plus rien par la suite.

Dans tous les exemples que j'ai trouvés, c'est le nom d'une macro qui est indiqué pour .OnAction, mais dès lors, comment écrire la macro pour qu'il sélectionne feuille qui correspond au bouton, puisque visiblement on ne peut pas passer d'argument ? (sans bien sûr créer 107 macros :p)

Merci par avance de votre aide...!
Ci dessous le code complet si nécessaire :

Code:
Sub Ajout_Menu()

    Dim Cbar As CommandBar, CBut As CommandBarButton

    Set Cbar = CommandBars.Add("SelOnglet", msoBarTop, True)
    Cbar.Visible = True


    'Création d'un sous menu par pôle
    For I = 1 To 10
        Set SM1 = Cbar.Controls.Add(msoControlPopup)
        With SM1
            .Caption = "10" & I
            .Tag = "10" & I
        End With
    Next I

    'Ajout d'un bouton par feuille pour chaque pôle
    For I = 1 To 8
        For J = Sheets("POLE 10" & I).Index + 1 To Sheets("POLE 10" & I + 1).Index - 2
            Set CBut = CommandBars("SelOnglet").Controls("10" & I).Controls.Add(msoControlButton)

            With CBut
                .Style = msoButtonCaption
                .Caption = Sheets(J).Name
                .OnAction = SelectFeuille(J)
                .Tag = "SM" & I & "BTN" & J
            End With
        Next J
    Next I
    
    'Ajout d'un bouton par feuille pour pôle 109
     For J = Sheets("POLE 109").Index + 1 To Sheets("POLE 110").Index - 2
        Set CBut = CommandBars("SelOnglet").Controls("10" & I).Controls.Add(msoControlButton)

        With CBut
            .Style = msoButtonCaption
            .Caption = Sheets(J).Name
            .OnAction = SelectFeuille(J)
            .Tag = "SM" & I & "BTN" & J
        End With
    Next J
    
    'Ajout d'un bouton par feuille pour pôle 110
    For J = Sheets("POLE 110").Index + 1 To Sheets.Count - 3
        Set CBut = CommandBars("SelOnglet").Controls("10" & I).Controls.Add(msoControlButton)

        With CBut
            .Style = msoButtonCaption
            .Caption = Sheets(J).Name
            .OnAction = SelectFeuille(J)
            .Tag = "SM" & I & "BTN" & J
        End With
    Next J

End Sub
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
965

Statistiques des forums

Discussions
312 211
Messages
2 086 292
Membres
103 171
dernier inscrit
clemm