View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
NickHK[_3_] NickHK[_3_] is offline
external usenet poster
 
Posts: 415
Default File number not available on entering in a module in an excel add-in

If you have your looging routine in the .xla, you do not need the file
number. Just pass the text and let the .WriteLog take care of the rest.
In case I misunderstand the problem, values returned by FreeFile as not
machine unique. They are certainly Process independent but possibly Thread
independent. As such, a FreeFile value from one thread/process cannot be
used by another thread/process as it will either be invalid or point to a
different file.

NickHK

"ArharDal"
groups.com...
I have an excel file that contains that Main(). I have WriteLog(fnum,
message) function in a different excel addin file .xla. When I use
WriteLog to write to a already opened file I get "Bad file or number".
Apparently, the file number is not available in that module before
entering into the module in the addin.

Sub Main()
REPORT_FILE_NUMBER = FreeFile
Open ThisWorkbook.Sheets(1).Range("outputfile").value For Output
Access Write As #REPORT_FILE_NUMBER
Print #REPORT_FILE_NUMBER, "My message" '<== This works fine

WriteLog( REPORT_FILE_NUMBER, "My message" )

Print #REPORT_FILE_NUMBER, "My message" '<== This works fine also!!
Close #REPORT_FILE_NUMBER
End Sub

'This sub is in an excel addin. It works fine if not an excel addin but
a different module in the same file.
Sub WriteLog( Optional dest, msg As String )
Print #dest, msg '<=== I get error number 52, bad file name or
number here
End Sub

Please help. Thanks