Adding a new menu on the Worksheet menu bar

U

u473

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
("Help").Index"
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,
Temporary:=True)
' Add a caption
NewMenu.Caption = "Fi&lter"
End Sub

Help appreciated,
J.P.
 
U

u473

"Help" ID is 30010
I tried to replace
HelpIndex = CommandBars(1).Controls("Help").Index
with
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.
J.P.
 
R

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
Application.CommandBars(1).Controls("Hi").Delete
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

Top