ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Procedure works from VBA but not the Ribbon (https://www.excelbanter.com/excel-programming/421397-procedure-works-vba-but-not-ribbon.html)

JeremyJ

Procedure works from VBA but not the Ribbon
 
I get this "Incorrect Function" error and I have narrowed the problem down to
it being only 2 lines of VBA code.

Sub xyz()
ActiveWorkbook.Save
End
End Sub

I need the "End" line of code to clear all variables (there are hundreds of
them). When I run this straight from VBA there are no problems but when I run
the procedure from a ribbon button the "Incorrect Function" error pops up.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
<ribbon
<tabs
<tab id="MyCustomTab" label="My Tab" insertAfterMso="TabHome"
<group id="customGroup1" label="Group 1"
<button id="customButton1" label="Button 1" size="normal"
onAction="xyz" /
</group
</tab
</tabs
</ribbon
</customUI

Sub xyz(control As IRibbonControl)
ActiveWorkbook.Save
End
End Sub

The code runs find when either one is absent but not when they run together.

Is there a fix to this problem?
or
Is there another way I can clear all variables with out typing "X=Empty" for
each one?


Ron de Bruin

Procedure works from VBA but not the Ribbon
 
Hi JeremyJ

You must use it like this

'Callback for xyz onAction
Sub xyz(control as IRibbonControl)

End Sub


There is button in the UI editor that you can use

Generate Callbacks : This will create macros(callbacks) for each onAction you have in
the RibbonX. Select all callbacks and copy them in a normal module in your workbook.


--

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


"JeremyJ" wrote in message ...
I get this "Incorrect Function" error and I have narrowed the problem down to
it being only 2 lines of VBA code.

Sub xyz()
ActiveWorkbook.Save
End
End Sub

I need the "End" line of code to clear all variables (there are hundreds of
them). When I run this straight from VBA there are no problems but when I run
the procedure from a ribbon button the "Incorrect Function" error pops up.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
<ribbon
<tabs
<tab id="MyCustomTab" label="My Tab" insertAfterMso="TabHome"
<group id="customGroup1" label="Group 1"
<button id="customButton1" label="Button 1" size="normal"
onAction="xyz" /
</group
</tab
</tabs
</ribbon
</customUI

Sub xyz(control As IRibbonControl)
ActiveWorkbook.Save
End
End Sub

The code runs find when either one is absent but not when they run together.

Is there a fix to this problem?
or
Is there another way I can clear all variables with out typing "X=Empty" for
each one?


Jim Rech

Procedure works from VBA but not the Ribbon
 
If you have two subs with the same name you're asking for trouble. Surely
you can rename one.

--
Jim
"JeremyJ" wrote in message
...
|I get this "Incorrect Function" error and I have narrowed the problem down
to
| it being only 2 lines of VBA code.
|
| Sub xyz()
| ActiveWorkbook.Save
| End
| End Sub
|
| I need the "End" line of code to clear all variables (there are hundreds
of
| them). When I run this straight from VBA there are no problems but when I
run
| the procedure from a ribbon button the "Incorrect Function" error pops up.
|
| <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
| <ribbon
| <tabs
| <tab id="MyCustomTab" label="My Tab" insertAfterMso="TabHome"
| <group id="customGroup1" label="Group 1"
| <button id="customButton1" label="Button 1" size="normal"
| onAction="xyz" /
| </group
| </tab
| </tabs
| </ribbon
| </customUI
|
| Sub xyz(control As IRibbonControl)
| ActiveWorkbook.Save
| End
| End Sub
|
| The code runs find when either one is absent but not when they run
together.
|
| Is there a fix to this problem?
| or
| Is there another way I can clear all variables with out typing "X=Empty"
for
| each one?
|



All times are GMT +1. The time now is 01:16 AM.

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