Adding a new menu on the Worksheet menu bar



I tried to adapt J.Walkenbach code to add a menu item on Workbook_open
but I get the following error on "HelpIndex = CommandBars(1).Controls
Run-time Error '91'
Object variable or with block variable not set

Private Sub Workbook_Open()
Dim HelpIndex As Integer
Dim NewMenu As CommandBarPopup
' Get Index of Help menu
HelpIndex = CommandBars(1).Controls("Help").Index
' Create the control
Set NewMenu = CommandBars(1) _
.Controls.Add(Type:=msoControlPopup, Before:=HelpIndex,
' Add a caption
NewMenu.Caption = "Fi&lter"
End Sub

Help appreciated,


"Help" ID is 30010
I tried to replace
HelpIndex = CommandBars(1).Controls("Help").Index
HelpIndex = CommandBars(1).Controls(ID:=30010).Index
I does not work.
I am working with a US Version of Excel 2003
and the original code comes from
Excel VBA Programming for Dummies from J. Walkenbach, page 314.
Where did I go wrong ?
Thank you for your response.

Ron de Bruin

This basic test is working for me

Sub MenuBar_Item()
Call MenuBar_Item_Delete
With Application.CommandBars(1)
With .Controls.Add(Type:=msoControlButton, before:=Application.CommandBars.FindControl(, 30010).Index)
.Style = msoButtonCaption
.Caption = "&Hi"
.OnAction = ThisWorkbook.Name & "!TestMacro"
End With
End With
End Sub

Sub MenuBar_Item_Delete()
On Error Resume Next
On Error GoTo 0
End Sub

Sub TestMacro()
MsgBox "Hi"
End Sub

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question