Menibelus
XLDnaute Nouveau
Bonjour,
J'ai trouvé cette macro sur excelabo pour créer un menu de mes feuilles de mon classeur mis une erreur m'est signalé à la ligne CommandBars("Workbook tabs").ShowPopup en rouge ci-dessous
Pourquoi?
Pour information j'utilise office 2011 Mac
Merci
Public LeNombre As Integer Const cTag As String = "SpecialMisange"
Sub CreerLeMenuFeuilles(Nbf As Integer)
With Application.CommandBars
If Not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
Set MenuFeuilles = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With MenuFeuilles
.Caption = "&Menu Feuilles"
.Tag = cTag
.BeginGroup = False
End With
Set OptionsMenuFeuilles = MenuFeuilles.Controls.Add(msoControlPopup, , , , True)
With OptionsMenuFeuilles
.Caption = "Options"
Set Option1 = .Controls.Add(msoControlButton, 1, , , True)
With Option1
.Caption = "Afficher toutes les feuilles"
.OnAction = "ToutesLesFeuilles"
End With
Set Option2 = .Controls.Add(msoControlButton, 1, , , True)
With Option2
.Caption = "Définir le nombre de feuilles à afficher"
.OnAction = "NombredeFeuilles"
End With
End With
Select Case Nbf
Case Is = 0
ToutesLesFeuilles
Case Is > ThisWorkbook.Sheets.Count
ToutesLesFeuilles
End Select
For i = 1 To Nbf
If Sheets(i).Visible = True Then
With MenuFeuilles
NF = "Feuille" & i
Set NF = .Controls.Add(msoControlButton, 1, , , True)
With NF
.Caption = Sheets(i).Name
.OnAction = "ActiverLaFeuille"
End With
End With
End If
Next i
End Sub
Sub SupprimerLeMenuFeuilles()
With Application.CommandBars
If Not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Sub ToutesLesFeuilles()
CreerLeMenuFeuilles (ThisWorkbook.Sheets.Count)
End Sub
Sub NombredeFeuilles()
LeNombre = Application.InputBox("Combien de feuilles souhaites-tu afficher ?", _
"Option menu Feuilles", , , , , , 1)
Select Case LeNombre
Case Is > ThisWorkbook.Sheets.Count
ToutesLesFeuilles
Case Is = 0
ToutesLesFeuilles
Case Is > 0 < ThisWorkbook.Sheets.Count
Sheets("Feuil1").Range("nbf") = LeNombre
End Select
CreerLeMenuFeuilles (LeNombre)
End Sub
Sub ActiverLaFeuille()
CommandBars("Workbook tabs").ShowPopup
End Sub
J'ai trouvé cette macro sur excelabo pour créer un menu de mes feuilles de mon classeur mis une erreur m'est signalé à la ligne CommandBars("Workbook tabs").ShowPopup en rouge ci-dessous
Pourquoi?
Pour information j'utilise office 2011 Mac
Merci
Public LeNombre As Integer Const cTag As String = "SpecialMisange"
Sub CreerLeMenuFeuilles(Nbf As Integer)
With Application.CommandBars
If Not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
Set MenuFeuilles = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With MenuFeuilles
.Caption = "&Menu Feuilles"
.Tag = cTag
.BeginGroup = False
End With
Set OptionsMenuFeuilles = MenuFeuilles.Controls.Add(msoControlPopup, , , , True)
With OptionsMenuFeuilles
.Caption = "Options"
Set Option1 = .Controls.Add(msoControlButton, 1, , , True)
With Option1
.Caption = "Afficher toutes les feuilles"
.OnAction = "ToutesLesFeuilles"
End With
Set Option2 = .Controls.Add(msoControlButton, 1, , , True)
With Option2
.Caption = "Définir le nombre de feuilles à afficher"
.OnAction = "NombredeFeuilles"
End With
End With
Select Case Nbf
Case Is = 0
ToutesLesFeuilles
Case Is > ThisWorkbook.Sheets.Count
ToutesLesFeuilles
End Select
For i = 1 To Nbf
If Sheets(i).Visible = True Then
With MenuFeuilles
NF = "Feuille" & i
Set NF = .Controls.Add(msoControlButton, 1, , , True)
With NF
.Caption = Sheets(i).Name
.OnAction = "ActiverLaFeuille"
End With
End With
End If
Next i
End Sub
Sub SupprimerLeMenuFeuilles()
With Application.CommandBars
If Not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Sub ToutesLesFeuilles()
CreerLeMenuFeuilles (ThisWorkbook.Sheets.Count)
End Sub
Sub NombredeFeuilles()
LeNombre = Application.InputBox("Combien de feuilles souhaites-tu afficher ?", _
"Option menu Feuilles", , , , , , 1)
Select Case LeNombre
Case Is > ThisWorkbook.Sheets.Count
ToutesLesFeuilles
Case Is = 0
ToutesLesFeuilles
Case Is > 0 < ThisWorkbook.Sheets.Count
Sheets("Feuil1").Range("nbf") = LeNombre
End Select
CreerLeMenuFeuilles (LeNombre)
End Sub
Sub ActiverLaFeuille()
CommandBars("Workbook tabs").ShowPopup
End Sub