ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Calling Function in Add-in (https://www.excelbanter.com/excel-programming/406654-calling-function-add.html)

MikeH2

Calling Function in Add-in
 
In a VBA Sub, I issue this command:

Dim IsItOpen As Variant
IsItOpen = Application.Run("personal.xla!IsOpenWB", "chart of accounts.xlsx")

And the function in personal.xla is:
Public Function isopenwb(ByVal WBname As String) As Boolean
'returns true if workbook is open
Dim objWorkbook As Object
On Error Resume Next
isopenwb = False
Set objWorkbook = Workbooks(WBname)
If Err = 0 Then isopenwb = True
End Function

But I get an error, "The Macro 'personal.xla!IsOpenWB' cannot be found.
Ideas?

Dave Peterson

Calling Function in Add-in
 
It sounds like personal.xla isn't open.

Or maybe IsOpenWB isn't in a general module.



MikeH2 wrote:

In a VBA Sub, I issue this command:

Dim IsItOpen As Variant
IsItOpen = Application.Run("personal.xla!IsOpenWB", "chart of accounts.xlsx")

And the function in personal.xla is:
Public Function isopenwb(ByVal WBname As String) As Boolean
'returns true if workbook is open
Dim objWorkbook As Object
On Error Resume Next
isopenwb = False
Set objWorkbook = Workbooks(WBname)
If Err = 0 Then isopenwb = True
End Function

But I get an error, "The Macro 'personal.xla!IsOpenWB' cannot be found.
Ideas?


--

Dave Peterson

MikeH2

Calling Function in Add-in
 
Personal.xla is open and the module type pulldown at the top says (General)

"Dave Peterson" wrote:

It sounds like personal.xla isn't open.

Or maybe IsOpenWB isn't in a general module.



MikeH2 wrote:

In a VBA Sub, I issue this command:

Dim IsItOpen As Variant
IsItOpen = Application.Run("personal.xla!IsOpenWB", "chart of accounts.xlsx")

And the function in personal.xla is:
Public Function isopenwb(ByVal WBname As String) As Boolean
'returns true if workbook is open
Dim objWorkbook As Object
On Error Resume Next
isopenwb = False
Set objWorkbook = Workbooks(WBname)
If Err = 0 Then isopenwb = True
End Function

But I get an error, "The Macro 'personal.xla!IsOpenWB' cannot be found.
Ideas?


--

Dave Peterson


Dave Peterson

Calling Function in Add-in
 
That's not enough information.

Is the code in the ThisWorkbook module? Or behind a worksheet?

Select your project in the project explorer in the VBE and click on
Insert|Module.

Then move (not copy) your code there.

MikeH2 wrote:

Personal.xla is open and the module type pulldown at the top says (General)

"Dave Peterson" wrote:

It sounds like personal.xla isn't open.

Or maybe IsOpenWB isn't in a general module.



MikeH2 wrote:

In a VBA Sub, I issue this command:

Dim IsItOpen As Variant
IsItOpen = Application.Run("personal.xla!IsOpenWB", "chart of accounts.xlsx")

And the function in personal.xla is:
Public Function isopenwb(ByVal WBname As String) As Boolean
'returns true if workbook is open
Dim objWorkbook As Object
On Error Resume Next
isopenwb = False
Set objWorkbook = Workbooks(WBname)
If Err = 0 Then isopenwb = True
End Function

But I get an error, "The Macro 'personal.xla!IsOpenWB' cannot be found.
Ideas?


--

Dave Peterson


--

Dave Peterson

MikeH2

Calling Function in Add-in
 
It is in a module by itself now. It never was part of the Microsoft Excel
Objects. It was always a module. Now it is in Module1 (as I usually rename
modules). But I believe I have other copies of that function elsewhere so I
renamed it to IsOpenWBXX and called it thusly and it works. So I believe it
must be a 'matter of mistaken identity' of my function. Anyway, issue
resolved short-term and I will fix long-term by cleaning up my code and
eliminated dup functions with the same name.

"Dave Peterson" wrote:

That's not enough information.

Is the code in the ThisWorkbook module? Or behind a worksheet?

Select your project in the project explorer in the VBE and click on
Insert|Module.

Then move (not copy) your code there.

MikeH2 wrote:

Personal.xla is open and the module type pulldown at the top says (General)

"Dave Peterson" wrote:

It sounds like personal.xla isn't open.

Or maybe IsOpenWB isn't in a general module.



MikeH2 wrote:

In a VBA Sub, I issue this command:

Dim IsItOpen As Variant
IsItOpen = Application.Run("personal.xla!IsOpenWB", "chart of accounts.xlsx")

And the function in personal.xla is:
Public Function isopenwb(ByVal WBname As String) As Boolean
'returns true if workbook is open
Dim objWorkbook As Object
On Error Resume Next
isopenwb = False
Set objWorkbook = Workbooks(WBname)
If Err = 0 Then isopenwb = True
End Function

But I get an error, "The Macro 'personal.xla!IsOpenWB' cannot be found.
Ideas?

--

Dave Peterson


--

Dave Peterson



All times are GMT +1. The time now is 10:48 AM.

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