View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson[_2_] Dave Peterson[_2_] is offline
external usenet poster
 
Posts: 420
Default Project Code Communication

You have a couple of choices.

#1. You can use application.run

Dim myAddin As Workbook
Set myAddin = Workbooks("youraddinnamehere.xla")
Application.Run("'" & myAddin.Name & "'!prelude").Close savechanges:=False

Personally, I'd use an intermediate variable so that I could check to make sure
things worked ok:

Dim myAddin As Workbook
Dim PreludeWkbk As Workbook

Set myAddin = Workbooks("youraddinnamehere.xla")

Set PreludeWkbk = Application.Run("'" & myAddin.Name & "'!prelude")

If PreludeWkbk Is Nothing Then
MsgBox "It wasn't found"
Else
PreludeWkbk.Close savechanges:=False
End If

==============
#2. You can use a reference to that addin:

Inside the VBE
Activate the code that calls the procedure in the addin.
Tools|References
and check the addin's project

I'd rename that project to give it a unique name before I did this, though.

Dim myAddin As Workbook
Dim PreludeWkbk As Workbook

Set myAddin = Workbooks("youraddinnamehere.xla")

Set PreludeWkbk = Prelude

If PreludeWkbk Is Nothing Then
MsgBox "It wasn't found"
Else
PreludeWkbk.Close savechanges:=False
End If

Once you have that reference set, you can use all the functions/subs like
they're in your own project or built into excel!



On 08/29/2010 15:54, Walter Briscoe wrote:
I have a Personal Macro Workbook in VBAProject(personal.xls).
It contains
Public Function Prelude() As Workbook
...
End Function

I want that function to be visible and hence callable from
VBAProject(stations.xls) which is also loaded
and starts
Option Explicit ' Force variable declaration
but
Prelude.Close SaveChanges:=False gets
Compile error: Variable not defined

Can Prelude be visible and hence callable from stations.xls?
If so, how?
A Declare statement will not work as Prelude is not in a DLL.


--
Dave Peterson