Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm trying to print out three sheets from different workbooks using the
printout method. It is fine when I step through it but if I run it proper it crashes, there seems to be some problem with the printing as nothing is printed. Is it because the workbook is closed before printing? I have seen a post before with the same type of question but no real answer. I tried sleeping but that did not seem to work. Any comments would be welcome. Here is the code: TIA Martin. -------CODE------------------ Option Explicit '---Constants--- Const cell_message As String = "D9" Const cell_costvars_dir As String = "B5" Const cell_airport_dir As String = "B7" Const cell_month_mmm As String = "B10" Const sht_apt_1 As String = "ACTUAL USD" Const sht_apt_2 As String = "YTD USD" Const sht_apt_3 As String = "ACTUAL USD R" Const sht_var_2 As String = "CUM" Const sht_var_3 As String = "Costs uscg" Const vars_col As String = "A" Const aprt_col As String = "B" Const start_row As Integer = 13 '---Code--- Private Sub delaytime() Dim i As Long Dim a As Long a = 0 For i = 1 To 10000 a = a + i a = a - i Next i End Sub Sub Print_Cost_Vars_And_Airport_Files() ' ' Print_Monthly_Airport_and_Cost_Vars_file Macro ' Dim l As Long Dim sz_month As String Dim sz_ans As String Dim wb As Workbook Dim wbpath As String Dim r As Long Dim ws As Worksheet On Error GoTo end_cleanup Set ws = ActiveSheet sz_month = Application.WorksheetFunction.Proper(ws.Range(cell _month_mmm)) If (sz_month = "Error") Then MsgBox "Please enter a month between 1 and 12.", vbOKOnly, "Error...", vbOKOnly GoTo end_cleanup ElseIf MsgBox("Are you sure you want to print files for " & sz_month & "?", vbYesNo) = vbNo Then GoTo end_cleanup End If If Right(ws.Range(cell_costvars_dir), 1) < "\" Then ws.Range(cell_costvars_dir) = ws.Range(cell_costvars_dir) + "\" End If If Right(ws.Range(cell_airport_dir), 1) < "\" Then ws.Range(cell_airport_dir) = ws.Range(cell_airport_dir) + "\" End If r = start_row While (ws.Range(vars_col & r) < "" Or ws.Range(aprt_col & r) < "") If ws.Range("B" & r) < "" Then ' print airport Workbooks.Open ws.Range(cell_airport_dir) & _ ws.Range(aprt_col & r), False, True Set wb = ActiveWorkbook wb.Sheets(Array(sht_apt_1, sht_apt_2, _ sht_apt_3)).PrintOut Copies:=1, Collate:=True delaytime wb.Close False End If If ws.Range(vars_col & r) < "" Then ' print cost vars Workbooks.Open ws.Range(cell_costvars_dir) & _ ws.Range(vars_col & r), False, True Set wb = ActiveWorkbook wb.Sheets(Array(sz_month, sht_var_2, _ sht_var_3)).PrintOut Copies:=1, Collate:=True delaytime wb.Close False End If r = r + 1 Wend end_cleanup: ws.Activate MsgBox "Done it..." Set ws = Nothing Set wb = Nothing End Sub ------CODE END------------- -- Martin |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Two worksheets, one printout? | Excel Discussion (Misc queries) | |||
Macro Crashes | Excel Programming | |||
Macro crashes if I run it twice | Excel Programming | |||
PrintOut macro from ?passed range.addrsess | Excel Programming | |||
Excel crashes when copying worksheets | Excel Programming |