Thread: Printing Macro
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Patrick C. Simonds Patrick C. Simonds is offline
external usenet poster
 
Posts: 343
Default Printing Macro

Just figured it out after hours of frustration. Adding
Application.EnableEvents on both ends of the code was all it took.

Application.EnableEvents = False

ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Paratransit_Color_Laser on Ne01:", Collate:=True

Application.EnableEvents = True



"Patrick C. Simonds" wrote in message
...
I have this code located under ThisWorkbook to intercept a print request,
and run my code to print multiple copies. Now I know most of you will say
"why not just set the #of copies" well the problem is when I do that our
Color Laser will print lines in the merged cells where the boarder would be
if the cells were not merged, but if I print one at a time it does not do
it (very strange behavior, but IT will not replace my print just for that).
I am at a loss here. So how can I loop through the multiple print routines
without triggering the BeforePrint code?





Private Sub Workbook_BeforePrint(Cancel As Boolean)

On Error GoTo EndPoint

Printing.Show

'EndPoint:
Cancel = True

EndPoint:


End Sub

---------------------------------------------------------

This code is in it's own module (not located under ThisWorkbook )


Private Sub CommandButton1_Click()

SortRoutesToCover.SortRoutesToCover

If OptionButton1.Value = True Then

ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Paratransit_Color_Laser on Ne01:", Collate:=True

Unload Printing

ElseIf OptionButton2.Value = True Then

ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Paratransit_Color_Laser on Ne01:", Collate:=True

ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Paratransit_Color_Laser on Ne01:", Collate:=True

Unload Printing

End If

End Sub