ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Workbook_BeforePrint performs twice ? (https://www.excelbanter.com/excel-programming/317926-workbook_beforeprint-performs-twice.html)

Peter[_21_]

Workbook_BeforePrint performs twice ?
 
Hi there,

I've put this code in the Workbook_BeforePrint event and when choosing a
printpreview I notice that when pressing escape, Excel shows the preview
again. Only after pressing the escape for the second time, Excel goes back
to normal view.

Code:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
If ActiveSheet.Name = "Weekform" Then ActiveSheet.PageSetup.PrintArea =
_
Range("Weekform_PRINT").Address
If Range("User") = "" Then Range("User") = UserName 'Using JWalk's
function for retrieving logged-in user
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.EnableEvents = True
End Sub

How do I prevent the second printpreview, and therefore also the second
printing of the sheet when not going for the preview ?

I've tried using "Cancel = True" right after the Private Sub
Workbook_BeforePrint(Cancel As Boolean) line.
Seems not to work

TIA,
Peter




Dave Peterson[_5_]

Workbook_BeforePrint performs twice ?
 
You can add Cancel=true and stop the procedure from running normally (you're
controlling the printing).

But you can print sheets that aren't active. You may want to use something
like:

Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
With Worksheets("weekform")
.PageSetup.PrintArea = .Range("Weekform_PRINT").Address
If .Range("User") = "" Then
.Range("User") = UserName
'Using JWalk's function for retrieving logged-in user
End If
End With

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.EnableEvents = True
Cancel = True
End Sub

You're changing that .printarea each time you print, but so what???



Peter wrote:

Hi there,

I've put this code in the Workbook_BeforePrint event and when choosing a
printpreview I notice that when pressing escape, Excel shows the preview
again. Only after pressing the escape for the second time, Excel goes back
to normal view.

Code:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
If ActiveSheet.Name = "Weekform" Then ActiveSheet.PageSetup.PrintArea =
_
Range("Weekform_PRINT").Address
If Range("User") = "" Then Range("User") = UserName 'Using JWalk's
function for retrieving logged-in user
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.EnableEvents = True
End Sub

How do I prevent the second printpreview, and therefore also the second
printing of the sheet when not going for the preview ?

I've tried using "Cancel = True" right after the Private Sub
Workbook_BeforePrint(Cancel As Boolean) line.
Seems not to work

TIA,
Peter


--

Dave Peterson

Terry Shannon

Workbook_BeforePrint performs twice ?
 
I think it shows the print a second time because you are doing a
printout in the macro. The BeforePrint event gives you a chance to make
changes before the print job is sent to the printer. You can stop the
print job by setting Cancel to false. Since you do not set Cancel to
false you end up with two requests!

Terry


Peter wrote:
Hi there,

I've put this code in the Workbook_BeforePrint event and when choosing a
printpreview I notice that when pressing escape, Excel shows the preview
again. Only after pressing the escape for the second time, Excel goes back
to normal view.

Code:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
If ActiveSheet.Name = "Weekform" Then ActiveSheet.PageSetup.PrintArea =
_
Range("Weekform_PRINT").Address
If Range("User") = "" Then Range("User") = UserName 'Using JWalk's
function for retrieving logged-in user
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.EnableEvents = True
End Sub

How do I prevent the second printpreview, and therefore also the second
printing of the sheet when not going for the preview ?

I've tried using "Cancel = True" right after the Private Sub
Workbook_BeforePrint(Cancel As Boolean) line.
Seems not to work

TIA,
Peter




Dave Peterson[_5_]

Workbook_BeforePrint performs twice ?
 
I think you'll actually want to set cancel = true.





Terry Shannon wrote:

I think it shows the print a second time because you are doing a
printout in the macro. The BeforePrint event gives you a chance to make
changes before the print job is sent to the printer. You can stop the
print job by setting Cancel to false. Since you do not set Cancel to
false you end up with two requests!

Terry

Peter wrote:
Hi there,

I've put this code in the Workbook_BeforePrint event and when choosing a
printpreview I notice that when pressing escape, Excel shows the preview
again. Only after pressing the escape for the second time, Excel goes back
to normal view.

Code:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
If ActiveSheet.Name = "Weekform" Then ActiveSheet.PageSetup.PrintArea =
_
Range("Weekform_PRINT").Address
If Range("User") = "" Then Range("User") = UserName 'Using JWalk's
function for retrieving logged-in user
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.EnableEvents = True
End Sub

How do I prevent the second printpreview, and therefore also the second
printing of the sheet when not going for the preview ?

I've tried using "Cancel = True" right after the Private Sub
Workbook_BeforePrint(Cancel As Boolean) line.
Seems not to work

TIA,
Peter




--

Dave Peterson


All times are GMT +1. The time now is 05:40 PM.

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