Printopdracht afvangen

Status
Niet open voor verdere reacties.

hstijnen

Gebruiker
Lid geworden
26 apr 2007
Berichten
82
Hoi,

Ik heb een Worddoc waarin ik vóór het afdrukken iets wil doen (bv sommige dingen onzichtbaar maken). Na het afdrukken wil ik die wijzigingen dan weer ongedaan maken. Ik kan dat doen in de BeforePrint event:
Code:
Private Sub Applic_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
    ActiveDocument.InlineShapes(1).Select
    Selection.InlineShapes(1).PictureFormat.CropLeft = 150
    Dialogs(wdDialogFilePrint).Show
    Selection.InlineShapes(1).PictureFormat.CropLeft = 0
    Cancel = True
End Sub
Hierin roep ik dan de ingebouwde print dialoog aan. Dat lukt allemaal, maar het gekke is dat dan de BeforePrint 2 keer aangeroepen wordt en dus de print dialoog twee keer verschijnt. Hoe is dat te voorkomen?
 
Ik vermoed sterk dat de oplossing ligt in het gebruiken van

Code:
Application.EnableEvents = False

'print code

Code:
Application.EnableEvents = True

Althans, zo zou het in Excel zijn. Hopelijk ben je er iets mee.

Wigi
 
in Word VBA blijkt EnableEvents geen eigenschap van Application te zijn, dus dat werkt niet. Het fenomeen doet zich echter niet altijd voor. Ik denk dat het uiteindelijk wel goed gaat.
iig bedankt
 
Het blijkt dat als er andere docs openstaan, ook met een eventprocedure Applic_DocumentBeforePrint, dat die ook aangeroepen worden! Dus vandaar dat de printdialoog meer keren verscheen. De volgende oplossing heb ik gevonden in
http://www.excelguru.ca/node/54

Code:
Public lEvents As Long

Private Sub Procedure_One()

'Flag events to be turned off
lEvents = lEvents + 1

If lEvents > 1 Then
    'Events turned off, so do nothing (unless desired)
Else
    'Events turned on, so run your normal code here
End If

'Turn off events flagging
lEvents = lEvents - 1

End Sub

En dat werkt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan