ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Can I call a sub procedure from another file? (https://www.excelbanter.com/excel-programming/353550-can-i-call-sub-procedure-another-file.html)

Conan Kelly

Can I call a sub procedure from another file?
 
Hello all,

I have a time sheet workbook that, at the end of the payperiod, will
mail itself to my boss. I want to add to it the ability to move
itself to a "Sent" folder. But in order to do that, it needs to be
closed. When it closes, all code stored in it after the Close method
will not execute, correct? So, I will have to store the commands to
close and move the file in PERSONAL.XLS. Can I call a sub procedure
stored in PERSONAL.XLS from my timesheet workbook? If so, how?

I'm assuming that the procedure I'm calling will need the Public
keyword added to it, correct? I have tried that before. The
statement I used to try to call it was:

ProcedureName Arguments '(if any)

But when I tried that, I got Compile Error message: Variable Not
Defined (if I remember correctly).

Any help on this matter will be greatly appreciated,

Conan Kelly



Dave Peterson

Can I call a sub procedure from another file?
 
This was just posted by Rob Bovey:

Application.Run "'YourAdd-in.xla'!YourSubName", Arg1, Arg2, ....

Just for completeness, if the routine is a function and you want to capture
the return value, you write it as

x = Application.Run("'YourAdd-in.xla'!YourSubName", Arg1, Arg2)

========
Another alternative would be to add a reference to your workbook that points at
your addin.

Give your addin a nice unique project name (not VBAProject) and then with your
other workbook's project active:

Tools|references|
click on that addin's project.

Then you can use your functions/subs in the addin just like they were part of
that same project.

Conan Kelly wrote:

Hello all,

I have a time sheet workbook that, at the end of the payperiod, will
mail itself to my boss. I want to add to it the ability to move
itself to a "Sent" folder. But in order to do that, it needs to be
closed. When it closes, all code stored in it after the Close method
will not execute, correct? So, I will have to store the commands to
close and move the file in PERSONAL.XLS. Can I call a sub procedure
stored in PERSONAL.XLS from my timesheet workbook? If so, how?

I'm assuming that the procedure I'm calling will need the Public
keyword added to it, correct? I have tried that before. The
statement I used to try to call it was:

ProcedureName Arguments '(if any)

But when I tried that, I got Compile Error message: Variable Not
Defined (if I remember correctly).

Any help on this matter will be greatly appreciated,

Conan Kelly


--

Dave Peterson


All times are GMT +1. The time now is 12:02 PM.

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