ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Call Add-In Macro from VBA (https://www.excelbanter.com/excel-programming/381568-call-add-macro-vba.html)

WCM

Call Add-In Macro from VBA
 
I created a simple add-in that contains one module (module1) and that module1
contains a simple macro (macro1). I posted that add-in to a file folder on my
desktop and then added it to my Excel Application. So, if I look in the VB
Editor I can see the new .xla as a separate project in every Excel Workbook I
open.

QUESTION:
I can attach that .xla macro1 to a toolbar command icon (and it works). I
can also attach it to a simple Excel 'Button' and that works, too.

But when I insert a VB command button into a worksheet, and then add a
simple procedure to the click event, I cannot get the .xla macro to run. What
is the proper syntax? The following (or any other longer syntax I use)
doesn't work:

Private Sub CommandButton1_Click()
Macro1
End Sub

Thanks,
wcm

Chip Pearson

Call Add-In Macro from VBA
 
There are two ways to do this. The first is with the Run method. Use
something like

Application.Run "AddinName.xla!MacroName"

The second is to reference the addin. First of all, you should give your
add-in a meaningful project name. Open your add-in in the VBA Editor, go to
the Tools menu, and choose "VBA Project Properties". In that dialog, change
the name of the project from "VBAProject" to something meaningful. Save the
Add-In.

Then open the workbook from which you want to call the macro in the add-in.
Go to the Tools menu, choose References, and in the list find the Project
Name (not the workbook name) that you change in the previous step. Put a
check next to that project item. Then, once the reference is established
from the workbook to the add-in, you can call the macro in the add-in by
simply using its name.

Macro1


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)




"WCM" wrote in message
...
I created a simple add-in that contains one module (module1) and that
module1
contains a simple macro (macro1). I posted that add-in to a file folder on
my
desktop and then added it to my Excel Application. So, if I look in the VB
Editor I can see the new .xla as a separate project in every Excel
Workbook I
open.

QUESTION:
I can attach that .xla macro1 to a toolbar command icon (and it works). I
can also attach it to a simple Excel 'Button' and that works, too.

But when I insert a VB command button into a worksheet, and then add a
simple procedure to the click event, I cannot get the .xla macro to run.
What
is the proper syntax? The following (or any other longer syntax I use)
doesn't work:

Private Sub CommandButton1_Click()
Macro1
End Sub

Thanks,
wcm




WCM

Call Add-In Macro from VBA
 
Just got my answer from a post just before mine (but didn't see until now),
so here it is, thanks to merjet:

Application.Run "FileName.xla!macro1"


"WCM" wrote:

I created a simple add-in that contains one module (module1) and that module1
contains a simple macro (macro1). I posted that add-in to a file folder on my
desktop and then added it to my Excel Application. So, if I look in the VB
Editor I can see the new .xla as a separate project in every Excel Workbook I
open.

QUESTION:
I can attach that .xla macro1 to a toolbar command icon (and it works). I
can also attach it to a simple Excel 'Button' and that works, too.

But when I insert a VB command button into a worksheet, and then add a
simple procedure to the click event, I cannot get the .xla macro to run. What
is the proper syntax? The following (or any other longer syntax I use)
doesn't work:

Private Sub CommandButton1_Click()
Macro1
End Sub

Thanks,
wcm


WCM

Call Add-In Macro from VBA
 
Chip:
Thank you. Didn't see your post until today, so would have answered sooner.
This is exactly what I needed, and thanks for two working alternatives.


"Chip Pearson" wrote:

There are two ways to do this. The first is with the Run method. Use
something like

Application.Run "AddinName.xla!MacroName"

The second is to reference the addin. First of all, you should give your
add-in a meaningful project name. Open your add-in in the VBA Editor, go to
the Tools menu, and choose "VBA Project Properties". In that dialog, change
the name of the project from "VBAProject" to something meaningful. Save the
Add-In.

Then open the workbook from which you want to call the macro in the add-in.
Go to the Tools menu, choose References, and in the list find the Project
Name (not the workbook name) that you change in the previous step. Put a
check next to that project item. Then, once the reference is established
from the workbook to the add-in, you can call the macro in the add-in by
simply using its name.

Macro1


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)




"WCM" wrote in message
...
I created a simple add-in that contains one module (module1) and that
module1
contains a simple macro (macro1). I posted that add-in to a file folder on
my
desktop and then added it to my Excel Application. So, if I look in the VB
Editor I can see the new .xla as a separate project in every Excel
Workbook I
open.

QUESTION:
I can attach that .xla macro1 to a toolbar command icon (and it works). I
can also attach it to a simple Excel 'Button' and that works, too.

But when I insert a VB command button into a worksheet, and then add a
simple procedure to the click event, I cannot get the .xla macro to run.
What
is the proper syntax? The following (or any other longer syntax I use)
doesn't work:

Private Sub CommandButton1_Click()
Macro1
End Sub

Thanks,
wcm






All times are GMT +1. The time now is 08:11 PM.

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