ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Printing Macro (https://www.excelbanter.com/excel-programming/408607-printing-macro.html)

Patrick C. Simonds

Printing Macro
 
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


Patrick C. Simonds

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




All times are GMT +1. The time now is 05:24 AM.

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