popupmenu is not invoking the code

G

Guest

I created a commandBar
code is given below
when I rightclick the menu is invoked. But when I click on an item, my
function is not called (specified in the OnAction = ....)

I have another question
is there any specific place we write these codes?
when I tried

Set myPopup = CommandBars.Add(Name:="MyBar", Position:=msoBarPopup)
in a test workbook it gives errors saying, procedure call or argument is
wrong.
the same code works in my book. what am my missing to notice?

Thank you for the help
MVM


--------------- this is in standard module --------------
Public Sub CreateMyPopup()
If Not CommandBars("MyBar") Is Nothing Then
CommandBars("MyBar").Delete
End If

Set myPopup = CommandBars.Add(Name:="MyBar", Position:=msoBarPopup)
End Sub

---------------

--------------- thisworkbook -----fills the controls in the commandbar
Public Sub PopulateMyPopup()
Dim c As Range
Call SetRanges
Call CreateMyPopup
myPopup.Enabled = True
For Each c In AcctRange.Columns
Set myMnu = myPopup.Controls.Add(Type:=msoControlButton,
temporary:=True)
With myMnu
.Caption = c.Cells(1, 1).Value & " - " & c.Cells(3, 1).Value
' .DescriptionText = "MMMM"
.Tag = c.Cells(1, 1).Value
.Enabled = True
.Visible = True
' .OnAction = "GetCode(Expenses.Cells(16, 10)," & .Caption & ")"
.OnAction = "Expenses.Cells(16, 10).value = " & Left(.Caption,
1) & ")"
.Execute
End With
Next c
End Sub

---------------
 
R

Rob van Gelder

I don't think you can set OnAction to a function with parameters.

OnAction property gets set to the Function Name only.
Use the Parameter property to specify a parameter for the function.


Use the ActionControl to determine what the Parameter is after the
commandbutton has been clicked.

Sub MyOwnOnAction()
MsgBox Application.CommandBars.ActionControl.Parameter
End Sub


I have a CommandBar example on my website: "Commandbar Buttons"
 
B

Bob Phillips

I am not too clear where you are doing what, but it looks to me that you are
trying to add the button to the popup before you have created the popup.

Where is the mypopup variable declared? You would be wise to precede all
your modules with Option Explicit to force variable declaration.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
G

Guest

Thank you Rob - that is great it worked.
Bob: I have the explicite option on all modules
I declared it globally.

the other question is still puzzles me.

MVM
 
R

Rob van Gelder

I'll put the code into a standard module. That's where most code goes.

Except workbook / worksheet event code.
Worksheet event code goes in worksheet module, Workbook event code goes in
workbook module.
 

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

Similar Threads

Sub menu 3
positioning the control on a popup commandbar 3
VBA project in Intranet 1
.OnAction Exvel VBA 2
Custom Toolbar 2
Excel 2007 Menus 2
Using Excel 2007 with Excel 2003 template 1
commandbars.add problem 1

Top