Clever-Excel-Forum

Normale Version: Weitere VBA-Kommandos nur ausführen, wenn Druck erfolgt ist
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich nutze in einem VBA-Makro 
Code:
Application.CommandBars.ExecuteMso "PrintPreviewAndPrint"
um einen fest definierten Druckbereich in der Vorschau anzuzeigen und ggf. zu Drucken.
Wenn aber die Vorschau durch den Benutzer abgebrochen und damit der Druck nicht ausgeführt wurde, soll der nachfolgende VBA-Code nicht ausgeführt werden.

Wie kann ich im VBA-Makro feststellen, ob der Druck tatsächlich durchgeführt oder schon in der Vorschau abgebrochen wurde?

UPDATE

Habe folgende für mich einfache, aber ausreichende Lösung gefunden:
Code:
returnCode = Worksheets("Beispiel").PrintPreview
If returnCode = True Then
    ' ... mache etwas ...
End If

   

Danke und Gruß
Rodario
Moin,

du könntest dir mal anschauen, ob das BeforePrint-Event in der zeitlichen Reihenfolge nach der PrintPreview liegt: https://learn.microsoft.com/en-us/office...eforeprint

Aber auch das bietet dir null Garantie. Drucker aus, oder PDF-Drucler gewählt, oder Druckauftrag gelöscht oder Ergebnis weggeworfen. Aöö das kannst du nicht kontrollieren. Was soll denn überhaupt der Zweck der Übung sein?

Viele Grüße 
derHöpp
überflüssige Variablen:

Code:
If  sheets("Beispiel").PrintPreview Then
    ' print hat geklappt: ... mache etwas ...
End If
Hallo derHoepp,

ziel der ganzen Aktion soll sein, dass Benutzer vor dem Druck noch einmal in der Vorschau/Seitenansicht kontrollieren können,
ob alle Texte/Daten korrekt sind und vollständig sind.

Falls nicht, sollen die Benutzer den Start des Druckes abbrechen und entsprechend korrigieren/anpassen können.

Ich weiß, dass man den festgelegten Druckbereich auch skalieren kann, so dass alles auf eine Seite passt, dass ist
aber nicht gewünscht, weil teils die Schrift sehr klein wird und dies teil eines Schreibens ist, welches an andere Stellen geht.

Gruß
Rodario

Hallo snb,

stimmt, die Variable kann ich mir sparen, da ich direkt den Returncode abfragen kann.

Danke für den Hinweis.

Gruß
Rodario