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):
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 )
Merci par avance de votre aide...!
Ci dessous le code complet si nécessaire :
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
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 )
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: