ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Ensuring Excel start macros complete before terminating (https://www.excelbanter.com/excel-programming/352525-ensuring-excel-start-macros-complete-before-terminating.html)

karlman

Ensuring Excel start macros complete before terminating
 
I have a VBS script that runs each night. It is supposed to open an
Excel document so that it's start macros run and do some preprocessing.
It appears that I am terminating the application before the macros get
a chance to run. Is there a flag I can check to see if they are still
processing before I exit the application?

Thank you

Here is the code I am using. It is quite short, most of the code is for
troubleshooting purposes...

========================
On Error Resume Next

Set oExcel = CreateObject("Excel.application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTS = oFSO.OpenTextFile("autodialer_cube.log", 2, True)

oTS.WriteLine Now & " Opening workbook..."

oExcel.Workbooks.Open "\\CASK\groups\AutoDialer\AutoDialer.xls"
oExcel.ActiveWorkbook.RunAutoMacros 1
oExcel.ActiveWorkbook.Saved = True

oTS.WriteLine oExcel.ActiveWorkbook.Worksheets(1).Cells(5, 1).Value

If Err.Number < 0 Then
oTS.WriteLine Now & " (" & Err.Number & ") " & Err.Description
Err.Clear
End If

oTS.WriteLine Now & " Closing workbook..."

oExcel.Quit

If Err.Number < 0 Then
oTS.WriteLine Now & " (" & Err.Number & ") " & Err.Description
Err.Clear
End If
========================


Tom Ogilvy

Ensuring Excel start macros complete before terminating
 
I don't see anything in your macro that wouldn't be synchronous, so I would
expect the process to finish for each step.

I guess it could depend on what is in the Auto_Open macro of the workbook.
If it is doing a background query, then this can be problematic, or using
Application.OnTime.

--
Regards,
Tom Ogilvy


"karlman" wrote in message
oups.com...
I have a VBS script that runs each night. It is supposed to open an
Excel document so that it's start macros run and do some preprocessing.
It appears that I am terminating the application before the macros get
a chance to run. Is there a flag I can check to see if they are still
processing before I exit the application?

Thank you

Here is the code I am using. It is quite short, most of the code is for
troubleshooting purposes...

========================
On Error Resume Next

Set oExcel = CreateObject("Excel.application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTS = oFSO.OpenTextFile("autodialer_cube.log", 2, True)

oTS.WriteLine Now & " Opening workbook..."

oExcel.Workbooks.Open "\\CASK\groups\AutoDialer\AutoDialer.xls"
oExcel.ActiveWorkbook.RunAutoMacros 1
oExcel.ActiveWorkbook.Saved = True

oTS.WriteLine oExcel.ActiveWorkbook.Worksheets(1).Cells(5, 1).Value

If Err.Number < 0 Then
oTS.WriteLine Now & " (" & Err.Number & ") " & Err.Description
Err.Clear
End If

oTS.WriteLine Now & " Closing workbook..."

oExcel.Quit

If Err.Number < 0 Then
oTS.WriteLine Now & " (" & Err.Number & ") " & Err.Description
Err.Clear
End If
========================




Ed

Ensuring Excel start macros complete before terminating
 
Would it help to set a doc property to some value at the end of the
Auto_Open macro, and loop a read code in the calling code that will not
terminate until the value is set?

Ed

"Tom Ogilvy" wrote in message
...
I don't see anything in your macro that wouldn't be synchronous, so I

would
expect the process to finish for each step.

I guess it could depend on what is in the Auto_Open macro of the workbook.
If it is doing a background query, then this can be problematic, or using
Application.OnTime.

--
Regards,
Tom Ogilvy


"karlman" wrote in message
oups.com...
I have a VBS script that runs each night. It is supposed to open an
Excel document so that it's start macros run and do some preprocessing.
It appears that I am terminating the application before the macros get
a chance to run. Is there a flag I can check to see if they are still
processing before I exit the application?

Thank you

Here is the code I am using. It is quite short, most of the code is for
troubleshooting purposes...

========================
On Error Resume Next

Set oExcel = CreateObject("Excel.application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTS = oFSO.OpenTextFile("autodialer_cube.log", 2, True)

oTS.WriteLine Now & " Opening workbook..."

oExcel.Workbooks.Open "\\CASK\groups\AutoDialer\AutoDialer.xls"
oExcel.ActiveWorkbook.RunAutoMacros 1
oExcel.ActiveWorkbook.Saved = True

oTS.WriteLine oExcel.ActiveWorkbook.Worksheets(1).Cells(5, 1).Value

If Err.Number < 0 Then
oTS.WriteLine Now & " (" & Err.Number & ") " & Err.Description
Err.Clear
End If

oTS.WriteLine Now & " Closing workbook..."

oExcel.Quit

If Err.Number < 0 Then
oTS.WriteLine Now & " (" & Err.Number & ") " & Err.Description
Err.Clear
End If
========================






karlman

Ensuring Excel start macros complete before terminating
 
Interesting idea! I will give it a try... Thanks



All times are GMT +1. The time now is 11:47 PM.

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