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
|