ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Adding a new menu on the Worksheet menu bar (https://www.excelbanter.com/excel-programming/436606-adding-new-menu-worksheet-menu-bar.html)

u473

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

Help appreciated,
J.P.

Ron de Bruin

Adding a new menu on the Worksheet menu bar
 
If you use a non English version it is possible that the Help label not exist

You can use the ID number of the control

See
http://www.rondebruin.nl/international.htm#Command


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"u473" wrote in message ...
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, Befo=HelpIndex,
Temporary:=True)
' Add a caption
NewMenu.Caption = "Fi&lter"
End Sub

Help appreciated,
J.P.


u473

Adding a new menu on the Worksheet menu bar
 
"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.

Ron de Bruin

Adding a new menu on the Worksheet menu bar
 
This basic test is working for me

Sub MenuBar_Item()
Call MenuBar_Item_Delete
With Application.CommandBars(1)
With .Controls.Add(Type:=msoControlButton, befo=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



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"u473" wrote in message ...
"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.



All times are GMT +1. The time now is 03:06 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com