View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Sloth Sloth is offline
external usenet poster
 
Posts: 252
Default Triggering a macro after Printing

Thanks for the help. Here is what I got. I removed the "On Error" because I
am still debugging this (I made another macro to enable the events back on).
This code seems to be working okay. But I would prefer to have the print
window when printing. The "PrintOut" command skips that and prints it
immediately to the default printer. So now I can't cancel or even perform a
print preview.

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim wkSht As Worksheet
Sheets(Array("January", "February", "March", "April", _
"May", "June", "July", "August", "September", "October", _
"November", "December", "Summary")).Select
For Each wkSht In ActiveWindow.SelectedSheets
If wkSht.Cells(7, 1) = 0 Then
wkSht.Rows("7:7").EntireRow.Hidden = True
End If
Next wkSht

Cancel = True

Application.EnableEvents = False
ActiveWindow.SelectedSheets.PrintOut
Application.EnableEvents = True

For Each wkSht In ActiveWindow.SelectedSheets
wkSht.Cells.EntireRow.Hidden = False
Next wkSht
Cells(1, 1).Select
Sheets("January").Select

End Sub


"Jim Thomlinson" wrote:

This should be close...

Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error GoTo ErrorHandler
Application.EnableEvents = False
Cancel = True
Sheets("January").Select
If Cells(7, 1) = 0 Then
Rows("7:7").EntireRow.Hidden = True
End If
ActiveSheet.PrintOut
DoStuff
ErrorHandler:
Application.EnableEvents = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
DoStuff
End Sub

Private Sub DoStuff()
Sheets(Array("January", "February", "March", "April", _
"May", "June", "July", "August", "September", _
"October", "November", "December", "Summary")).Select
Cells.Select
Selection.EntireRow.Hidden = False
Sheets("January").Select
Cells(1, 1).Select
End Sub
--
HTH...

Jim Thomlinson


"Sloth" wrote:

Below is some code I am working on. Basically it looks at specific cell A7.
If it is equal to zero then that row gets hidden when printing. I want all
rows to unhide after printing. How do I trigger this? The section under
Before_Save is what I would like to do after printing. Is there an easier
way to do this?



Private Sub Workbook_BeforePrint(Cancel As Boolean)
Sheets("January").Select
If Cells(7, 1) = 0 Then
Rows("7:7").EntireRow.Hidden = True
End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets(Array("January", "February", "March", "April", _
"May", "June", "July", "August", "September", _
"October", "November", "December", "Summary")).Select
Cells.Select
Selection.EntireRow.Hidden = False
Sheets("January").Select
Cells(1, 1).Select
End Sub