Ribbon UI onAction causes macro to run twice, with warning

C

chelovik

I have a very simple macro on an Excel2007 workbook, that reads:
Sub MyMacro
msgbox "Hello world"
End Sub

Having added a customUI to this workbook (.xlsm), with a button that reads:
<button id="customButton" label="Run my macro" onAction="MyMacro()" />

.... when I press the button from the ribbon, the macro runs twice, and I get
a dialogbox that shows a heading of: "Microsoft Visual Basic", and a message
that simply reads "400" (a "critical" icon is also displayed)

I've opened the xlsm file (by renaming it as .zip), and have been through
all the xml files, and there is only one reference to the macro throughout
all the files. Also, the workbook itself as only the one macro, no other code.

I have also restarted my PC incase there was a memory leak or other
corruption, but still the same problem

Has anyone had a similar problem? Is there a fix?

I woudl gladly go back to Office2003, but my office have made the shift to
2007, so I must get this code working

Thanking you in advance
Paul
 
J

Jim Rech

You don't need the parens in the onAction, although I don't know if they do
any harm. But for sure change your code to this:

Sub MyMacro(control As IRibbonControl)
MsgBox "Hello world"
End Sub

--
Jim
|I have a very simple macro on an Excel2007 workbook, that reads:
| Sub MyMacro
| msgbox "Hello world"
| End Sub
|
| Having added a customUI to this workbook (.xlsm), with a button that
reads:
| <button id="customButton" label="Run my macro" onAction="MyMacro()" />
|
| ... when I press the button from the ribbon, the macro runs twice, and I
get
| a dialogbox that shows a heading of: "Microsoft Visual Basic", and a
message
| that simply reads "400" (a "critical" icon is also displayed)
|
| I've opened the xlsm file (by renaming it as .zip), and have been through
| all the xml files, and there is only one reference to the macro throughout
| all the files. Also, the workbook itself as only the one macro, no other
code.
|
| I have also restarted my PC incase there was a memory leak or other
| corruption, but still the same problem
|
| Has anyone had a similar problem? Is there a fix?
|
| I woudl gladly go back to Office2003, but my office have made the shift to
| 2007, so I must get this code working
|
| Thanking you in advance
| Paul
 
M

Markus Ohnmacht

Hello guys,

I get the same problem.
I changed the code as Jim said, but then i get an error that the macro
"MyMacro" can't run and the macro may not available or the macros are
disabled.

Macros are enabled for sure.

It's confusing me.


How can i fix it?


Thanks
Markus
 
J

Jim Rech

OnAction = ThisWorkbook.name & ("!MyMacro")

You cannot put macro code in RibbonX.

Markus, can you send me an example that fails?

--
Jim
message |
| Much better if you state the onaction like this:
|
| OnAction = ThisWorkbook.name & ("!MyMacro")
|
|
| --
| The Code Cage Team
|
| Regards,
| The Code Cage Team
| 'The Code Cage' (http://www.thecodecage.com)
| ------------------------------------------------------------------------
| The Code Cage Team's Profile:
http://www.thecodecage.com/forumz/member.php?userid=2
| View this thread: http://www.thecodecage.com/forumz/showthread.php?t=33253
|
 
M

Markus Ohnmacht

Thanks for the answers,

the solution from "Code cage" doesn't work.

@Jim, I sent u an example file. I hope u can fix my problem :)

Bye
Markus
 
J

Jim Rech

As I emailed Markus, the code was in the ThisWorkbook module. I should have
thought of that...

--
Jim
message | Thanks for the answers,
|
| the solution from "Code cage" doesn't work.
|
| @Jim, I sent u an example file. I hope u can fix my problem :)
|
| Bye
| Markus
|
| "Jim Rech" wrote:
|
| > >>OnAction = ThisWorkbook.name & ("!MyMacro")
| >
| > You cannot put macro code in RibbonX.
| >
| > Markus, can you send me an example that fails?
| >
| > --
| > Jim
in
| > message | > |
| > | Much better if you state the onaction like this:
| > |
| > | OnAction = ThisWorkbook.name & ("!MyMacro")
| > |
| > |
| > | --
| > | The Code Cage Team
| > |
| > | Regards,
| > | The Code Cage Team
| > | 'The Code Cage' (http://www.thecodecage.com)
| >
| ------------------------------------------------------------------------
| > | The Code Cage Team's Profile:
| > http://www.thecodecage.com/forumz/member.php?userid=2
| > | View this thread:
http://www.thecodecage.com/forumz/showthread.php?t=33253
| > |
| >
| >
 
M

Markus Ohnmacht

Thanks a lot Jim,

it's confusing me.
I also tried the code in a Module and it didn't work. But now everything is
fine.


I go home now.

Cya
Markus
 

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

Top