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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 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
Partager