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"
--
Rob van Gelder -
http://www.vangelder.co.nz/excel
"MVM" wrote in message
...
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
---------------