Bonjour le forum,
J'ai une macro complémentaire Onglets.
Impossible de me souvenir son utilité!!!
Merci d'avance pour vos réponses.
Bonne fin de WE
Cordialement
Version imprimable
Bonjour le forum,
J'ai une macro complémentaire Onglets.
Impossible de me souvenir son utilité!!!
Merci d'avance pour vos réponses.
Bonne fin de WE
Cordialement
Bonjour,
Recherche ton classeur de macro complémentaire .xlam ou .xla (probablement dans "C:\Users\...\AppData\Roaming\Microsoft\AddIns") puis ouvre-le et regarde ce que fait le code !
Hervé.
Bonjour Hervé,
J'ai trouvé ça:
Code:
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
57
58 'Macro a intaller dans le repertoire XLStart d'Excel Option Explicit Public MyNewBar As New ComboBoxSheets Public MyBar As CommandBarComboBox Sub ComboOnglets(Optional a As Boolean) Dim i As Integer On Error Resume Next Application.CommandBars("standard"). _ Controls("Onglets").Delete Set MyBar = Application.CommandBars("standard"). _ Controls.Add(msoControlComboBox) With MyBar .Caption = "Onglets" For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .DropDownLines = 50 .DropDownWidth = -1 .ListHeaderCount = 0 .Text = ActiveSheet.Name .Width = 100 End With MyNewBar.SynchroBox MyBar MyBar.Visible = True End Sub Sub SupComboOnglets(Optional a As Boolean) On Error Resume Next Application.CommandBars("standard"). _ Controls("Onglets").Delete End Sub Sub ComboOnglets2(Optional a As Boolean) Dim i As Integer Set MyBar = Application.CommandBars("standard"). _ Controls("Onglets") With MyBar .Clear For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .Text = ActiveSheet.Name End With End Sub
Re,
Je t'ai commenté le code mais tu n'as pas posté le code du module de classe "ComboBoxSheets". Voici le code :
Hervé.Code:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 Public MyNewBar As New ComboBoxSheets Public MyBar As CommandBarComboBox Sub ComboOnglets(Optional a As Boolean) Dim i As Integer 'détruit le ComboBox de la barre de commande "Standard" si il existe, d'où le gestionnaire (on error resume next) On Error Resume Next Application.CommandBars("standard").Controls("Onglets").Delete 'crée le ComboBox dans la barre de commande Set MyBar = Application.CommandBars("standard").Controls.Add(msoControlComboBox) With MyBar 'lui donne comme titre "Onglets" .Caption = "Onglets" 'ajoute au ComboBox le nom des différentes feuilles si elles sont visibles For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i 'défini quelques propriétés du ComboBox .DropDownLines = 50 .DropDownWidth = -1 .ListHeaderCount = 0 .Text = ActiveSheet.Name .Width = 100 End With 'je pense qu'il y a appel du module de classe "ComboBoxSheets" MyNewBar.SynchroBox MyBar MyBar.Visible = True End Sub Sub SupComboOnglets(Optional a As Boolean) 'supprime le bouton "Onglets" de la barre "Standard" On Error Resume Next Application.CommandBars("standard").Controls("Onglets").Delete End Sub 'un autre remplissage du ComboBox sans le détruire au paravant ? Sub ComboOnglets2(Optional a As Boolean) Dim i As Integer Set MyBar = Application.CommandBars("standard").Controls("Onglets") With MyBar .Clear For i = 1 To Worksheets.Count If Sheets(i).Visible = True Then .AddItem Sheets(i).Name End If Next i .Text = ActiveSheet.Name End With End Sub
Re-bonsoir Hervé,
Exact voici le code demandé.
Un grand merci.
Bonne fin de WE
Bien cordialement
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private WithEvents ComboBoxSheets As Office.CommandBarComboBox Private Sub Class_Terminate() Set ComboBoxSheets = Nothing End Sub Private Sub ComboBoxSheets_Change(ByVal Ctrl As Office.CommandBarComboBox) Dim Onglet As String Onglet = Ctrl.Text Sheets(Onglet).Select End Sub Sub SynchroBox(box As CommandBarComboBox) Set ComboBoxSheets = box End Sub
Bonjour,
si la question est toujours de savoir à quoi ça sert : créer une combobox sur le ruban pour choisir une feuille et l'activer
Bonsoir joe.levrai,
Avec les réponses de Hervé j'ai compris à quoi ça sert.
Pas utilisé depuis 3 ans.
Merci à toi également.
A mon âge j'ai le "cervolant", "doublé" d'une méconnaissance du VBA trop "pointu" tu vois ce que ça peut donner!!!
On me sert TOUT sur un "plateau" et je vous en remercie TOUS!!!
Bonne fin de WE à vous deux.
Bien cordialement