gibt es sowas wie ein Workbook.AfterPrint, oder bleibt mir nur die Alternative, den Standarddruckbefehl auf einen Button zu legen und so Anweisungen nach dem Drucken ausführen zu lassen?
Danke im voraus!
Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
Application.EnableEvents = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
' Deine AfterPrintbefehle
Application.EnableEvents = True
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut
MsgBox "Fettich!"
Application.EnableEvents = True
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error GoTo Fehler
Cancel = True 'bricht den eigendlichen Druckauftrag ab
Application.EnableEvents = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1 'druckt neu
'ab hier dein AfterPrintbereich
'mach was du möchtest
Fehler:
Application.EnableEvents = True
End Sub
Um Befehle nach dem Drucken auszuführen, kannst du die Workbook_BeforePrint
-Ereignisprozedur in VBA nutzen. Hier ist eine einfache Anleitung:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu starten.
Doppelklicke im Projektfenster auf „DieseArbeitsmappe“.
Füge den folgenden Code ein:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Cancel = True ' Abbrechen des Druckauftrags
ActiveSheet.PrintOut ' Drucke das aktive Blatt
' Deine AfterPrint-Befehle hier
Application.EnableEvents = True
End Sub
Schließe den VBA-Editor und teste dein Workbook.
Mit dieser Methode kannst du beliebige Aktionen nach dem Drucken durchführen, wie das Anzeigen einer Nachricht oder das Ausführen von Berechnungen.
Fehler: Der Druckauftrag wird nicht abgebrochen.
Cancel = True
vor dem Druckbefehl gesetzt wird.Fehler: AfterPrint-Befehle werden nicht ausgeführt.
Application.EnableEvents
korrekt gesetzt wird.Fehler: Es kommt zu Laufzeitfehlern.
On Error GoTo
-Block, um Fehler abzufangen.On Error GoTo Fehler
' Dein Code hier
Fehler:
Application.EnableEvents = True
Wenn du keine VBA-Programmierung verwenden möchtest, kannst du die Druckfunktionen in Excel manuell anpassen. Eine Möglichkeit ist, einen Button zu erstellen, der den Druckauftrag ausführt und anschließend eine Nachricht anzeigt.
MsgBox
-Befehl hinzu.Hier sind zwei praktische Beispiele, die du ausprobieren kannst:
Nachricht nach dem Drucken anzeigen:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut
MsgBox "Drucken abgeschlossen!"
Application.EnableEvents = True
End Sub
Daten aktualisieren nach dem Drucken:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut
' Daten aktualisieren
ThisWorkbook.Sheets("Daten").Calculate
Application.EnableEvents = True
End Sub
Verwende Application.ScreenUpdating = False
: Deaktiviere die Bildschirmaktualisierung, um die Ausführung deines Codes zu beschleunigen.
Teste in einer Kopie: Arbeite immer in einer Kopie deiner Arbeitsmappe, um unerwünschte Veränderungen zu vermeiden.
Nutze Debugging: Verwende Debug.Print
, um Informationen während der Ausführung zu protokollieren. So kannst du Probleme schneller identifizieren.
1. Kann ich AfterPrint-Befehle verwenden, ohne VBA? Ja, du kannst einfache Aktionen manuell nach dem Drucken durchführen, aber für automatisierte Abläufe ist VBA notwendig.
2. Was passiert, wenn ich Application.EnableEvents
nicht setze?
Wenn du Application.EnableEvents
nicht setzt, kann es zu unerwartetem Verhalten kommen, da andere Ereignisse weiterhin ausgelöst werden könnten.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen