Custom Menus and OnAction
Why not just call 2 different subs that then in turn call the current sub you
are now calling. Then you would know which one called it because you'd have
that information before you call the sub. To do this you could use a public
variable that you set to either 1 or 2. Then in the subsequent sub that is
called the value would be either 1 or 2, depdning on which sub was called
before you get to the final sub. HTH
To declare a public variable, just go to the area above the first sub and
type:
Public WhichOneCalled as integer
These 3 subs would all be in your modmain module.
"Kent Prokopy" wrote:
I have the following code.
Private Sub Workbook_Open()
' Add menu item for Finops.
With Application.CommandBars("WorkSheet Menu
Bar").Controls.Add(Type:=msoControlPopup)
.Caption = "MyMenu"
' Add menu items for showing and hiding groups of sheets.
With .Controls.Add(msoControlPopup, 1)
.BeginGroup = True
.Caption = "Options"
' Sub Menus.
With .Controls.Add(msoControlButton, 1)
.Caption = "Option1"
.Tag = 0
.OnAction = "modMain.DoSomeThing"
End With
With .Controls.Add(msoControlButton, 1)
.Caption = "Option2"
.Tag = 1
.OnAction = "modMain.DoSomeThing"
End With
End With
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("WorkSheet Menu Bar").Controls("MyMenu").Delete
End Sub
When I select "Option1" or "Option2" from my custom menu and the Sub
DoSomeThing is executed. I need to know what sub menu called it/was clicked.
Both sub menus call the same Sub.
|