How to call a macro from a xlam in a xlsm

C

CLDommel

I am writing an aplpication in VBA in Excel 2007. When i used to call a macro
under excel 2003 I could use: Application.run
"XlaFile.xla!'VBAProject.ModuleName.MacroName"

However when i try to use this construction under Excel 2007 i get the
following error message:

"Cannot run the macro 'XLAFile.xlam!VBAProject.ModuleName.MacroName'. The
macro may not be available in this workbook or all macros may be disabled."

The Macro is standing in the Workbook_Open event of my xlsm file and is
calling an addin with xlam extension.
The xlam file is selected in the add-in list.

Does anybody have an idea how i can solve the problem? Can i continue using
the Excel2003 way under Excel2007 or is the call of an macro out of an add-in
changed under Excel2007
 
P

Peter T

There shouldn't be any difference between 2003/2007 with what you are trying
to do. Looks like you are fully qualifying the path to the macro so all the
more reason why it should work. Unless of course any of workbook, project
(sure it's VBAPoroject!), module or macro names are not quite right.

Try simply
'XLAFile.xlam!MacroName'

If that fails rename the macro and try again. If/when working fully qualify
again.

Oh, and ensure of course that the xlam is really open, you should see it in
project explorer. One more thing, depending on the name of the xlam you
might need to embrace it with apostrophes.

Regards,
Peter T
 
C

CLDommel

I don't get it. I imported the module and it did not work, I recreated the
module and it did not work. I cursed at my pc, at MS and at everything that
was in reach. I again recreated the module. And it works...

Application.run "VBAProject.ModuleName.MacroName" does exactly what is it
supposed to do.

*CLDommel shakes head

Why didn't I start cursing earlier, why did I wait three days before
starting to curse? The only solution I can think of now that it does work is
because my pc is afraid of me now :p

Anyways Peter T thank you for your help eventhough all that was needed was
to scare my computer :p
 
P

Peter T

That does happen sometimes, maybe some sort of confused corruption in the
'compiled' state of the project, which is why one of the suggestions I gave
was to rename the macro. Anyway glad cursing it a few times also got it
working!

Regards,
Peter T
 

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