View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Open a file and execute code

My bet is that you have two procedures (in different modules) that have the same
name.

If I'm right, I'd go back and fix it.

BlairH wrote:

Thanks for your help on this Dave.

I seem to have it working. Apparently it wants you to specify the name of
the module. It works if the Run command looks like this:

application.run "'" & wkbk.name & "'!Module1.Test_code_exec"

Blair

"Dave Peterson" wrote:

I'm still guessing that you have a typo somewhere.

BlairH wrote:

Test_code_exec is in Module1 of NCR_db.xls and is defined as a Public Sub.

"Dave Peterson" wrote:

So your "test_code_exec" procedure is in that NCR_db.xls workbook?

If yes, I'd use:

Option Explicit
Private Sub Workbook_Open()
Dim Wkbk as workbook
dim LogFileName as string

'Set the name and location of the log file
LogFileName = "C:\NCR_db.xls"

set wkbk = nothing
on error resume next
set wkbk = Workbooks.Open(Filename:=LogFileName)
on error goto 0

'check to see if it opened ok
if wkbk is nothing then
msgbox logfilename & " didn't open!"
else
'me is the object that owns the code
me.activate
'run the code in the workbook that this code opened
application.run "'" & wkbk.name & "'!Test_code_exec"
end if

End Sub

(Untested, uncompiled. Watch for typos.)

BlairH wrote:

I'm trying to open a file and execute code in that file. Here's what I've got:

Private Sub Workbook_Open()

WName = ActiveWorkbook.Name
LogFileName = "C:\NCR_db.xls" ' Set the name and location of the
log file
Workbooks.Open Filename:=LogFileName ' open the log file
LFName = ActiveWorkbook.Name ' return the name of the workbook
Workbooks(WName).Activate

Call Test_code_exec ' pass control to
the main code

End Sub

I keep getting an undefined Sub or Function error. The file doesn't open so
it look slike the error occurs before the code exexcutes - VB is trying to
identify all of its calls before execution, and since this is in a different
file it doesn't recognize it.

The Declare statement allows you to identify external subroutines in DLLs,
but can you specify that the code is external in another VB Project / Excel
file?

This is in XL2003.

Thanks,

Blair

--

Dave Peterson
.


--

Dave Peterson
.


--

Dave Peterson