Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Consider a checkbox created at run-time something like this:
Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler'" Sub ClickHandler() Debug.Print "Clicked!" End Sub Run the code and click on the checkbox and the ClickHandler runs. However, I'd love to be able to pass a parameter and I've read several posts whereby it says you can set OnAction to 'ClickHandler "Hello"' and it will pass "Hello" as the paramater: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler ""Hello""'" Sub ClickHandler(Text) Debug.Print "Clicked!" End Sub This just doesn't work - the code runs without complaining but ClickHandler never gets called when you click. What am I doing wrong? Thanks, Rob. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Should work in xl2000 SR1 and earlier. Believe support for this was dropped
with the latest Service Release of xl2000 and later versions. I don't have any official word on this, but based on past postings in this group of what versions were used by people having problems. -- Regards, Tom Ogilvy "Rob Nicholson" wrote in message ... Consider a checkbox created at run-time something like this: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler'" Sub ClickHandler() Debug.Print "Clicked!" End Sub Run the code and click on the checkbox and the ClickHandler runs. However, I'd love to be able to pass a parameter and I've read several posts whereby it says you can set OnAction to 'ClickHandler "Hello"' and it will pass "Hello" as the paramater: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler ""Hello""'" Sub ClickHandler(Text) Debug.Print "Clicked!" End Sub This just doesn't work - the code runs without complaining but ClickHandler never gets called when you click. What am I doing wrong? Thanks, Rob. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Try:
CheckBox.OnAction = "'ClickHandler Hello'" -- Vasant "Rob Nicholson" wrote in message ... Consider a checkbox created at run-time something like this: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler'" Sub ClickHandler() Debug.Print "Clicked!" End Sub Run the code and click on the checkbox and the ClickHandler runs. However, I'd love to be able to pass a parameter and I've read several posts whereby it says you can set OnAction to 'ClickHandler "Hello"' and it will pass "Hello" as the paramater: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler ""Hello""'" Sub ClickHandler(Text) Debug.Print "Clicked!" End Sub This just doesn't work - the code runs without complaining but ClickHandler never gets called when you click. What am I doing wrong? Thanks, Rob. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Actually it would be:
Sub SetOnAction() ActiveSheet.CheckBoxes(1).OnAction = _ "'ClickHandler ""Hello""'" End Sub Sub ClickHandler(sStr) MsgBox sStr End Sub "'ClickHandler Hello'" comes up with a blank message box. Tested. and works. Excl 2000 SR-1 US English Windows 2000 Pro -- Regards, Tom Ogilvy "Vasant Nanavati" <vasantn *AT* aol *DOT* com wrote in message ... Try: CheckBox.OnAction = "'ClickHandler Hello'" -- Vasant "Rob Nicholson" wrote in message ... Consider a checkbox created at run-time something like this: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler'" Sub ClickHandler() Debug.Print "Clicked!" End Sub Run the code and click on the checkbox and the ClickHandler runs. However, I'd love to be able to pass a parameter and I've read several posts whereby it says you can set OnAction to 'ClickHandler "Hello"' and it will pass "Hello" as the paramater: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler ""Hello""'" Sub ClickHandler(Text) Debug.Print "Clicked!" End Sub This just doesn't work - the code runs without complaining but ClickHandler never gets called when you click. What am I doing wrong? Thanks, Rob. |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks, Tom ... I was too hasty! :-)
Regards, Vasant. "Tom Ogilvy" wrote in message ... Actually it would be: Sub SetOnAction() ActiveSheet.CheckBoxes(1).OnAction = _ "'ClickHandler ""Hello""'" End Sub Sub ClickHandler(sStr) MsgBox sStr End Sub "'ClickHandler Hello'" comes up with a blank message box. Tested. and works. Excl 2000 SR-1 US English Windows 2000 Pro -- Regards, Tom Ogilvy "Vasant Nanavati" <vasantn *AT* aol *DOT* com wrote in message ... Try: CheckBox.OnAction = "'ClickHandler Hello'" -- Vasant "Rob Nicholson" wrote in message ... Consider a checkbox created at run-time something like this: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler'" Sub ClickHandler() Debug.Print "Clicked!" End Sub Run the code and click on the checkbox and the ClickHandler runs. However, I'd love to be able to pass a parameter and I've read several posts whereby it says you can set OnAction to 'ClickHandler "Hello"' and it will pass "Hello" as the paramater: Dim CheckBox As Shape Set CheckBox=Me.Shapes.AddFormControl(xlCheckBox, 0,0,100,0) CheckBox.OnAction="'ClickHandler ""Hello""'" Sub ClickHandler(Text) Debug.Print "Clicked!" End Sub This just doesn't work - the code runs without complaining but ClickHandler never gets called when you click. What am I doing wrong? Thanks, Rob. |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Should work in xl2000 SR1 and earlier. Believe support for this was
dropped with the latest Service Release of xl2000 and later versions. I don't have Ahh that might explain it - we're on the latest service pack. Cheers, Rob. |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Tested. and works. Excl 2000 SR-1 US English Windows 2000 Pro
Doesn't work on SP-3 :-( Sub Init() While Shapes.Count Shapes(1).Delete Wend Dim Checkbox As Shape Set Checkbox = Shapes.AddFormControl(xlCheckBox, 200, 200, 100, 0) Checkbox.OnAction = "'Sheet1.ClickHandler ""Hello""'" End Sub Sub ClickHandler(Text) MsgBox "ClickHandler: " & Text End Sub The code doesn't complain when Init is run but that click handler just doesn't fire. Remove the parameter and have a simple Sub ClickHandler() and it works fine. Anyway, found a workaround: Application.Caller can be used to determine which checkbox fired the event. So I built a simple Dictionary containing the parameters, key'd by the checkbox name which I can then lookup using CheckBoxes(Application.Caller).Name (or something like that). Cheers, Rob. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
2007/macros not working | Excel Worksheet Functions | |||
Macros not working when file run on a Mac | Excel Discussion (Misc queries) | |||
Macros written in UK not working in US | Excel Discussion (Misc queries) | |||
Working with Macros - Help needed!!! | Excel Discussion (Misc queries) | |||
Advise, please, how to get the following macros working: | Excel Programming |