Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro NACH Drucken ausführen

Forumthread: Makro NACH Drucken ausführen

Makro NACH Drucken ausführen
23.03.2006 14:55:04
Mario
Hallo, Folgendes Problem.
Um unsere Bestellungen in eine Budget-Tabelle zu übertragen habe ich z.Zeit das Drucken über das Menü mit folgenen Makro blockiert.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = ActivePrinter <> "Lager"
MsgBox "Bestellen nur über Button 'Senden' möglich"
End Sub

Leider funktioniert aber auch die Seitenansicht dadurch nicht mehr.
Wie kann ich es erreichen, das ich ein Makro erst nach dem Drucken ausführe, bzw. erst wenn man im DruckerAuswahlDialog den OK-Button drückt (od. im Menü der Drucker-Button).
Mario
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro NACH Drucken ausführen
23.03.2006 15:53:13
Beate
Hallo,
in diesem Thread findest du ein sehr schönes Beispiel von Uwe Küstner, in dem Beispiel Zellent-/-einfärbung: http://www.online-excel.de/fom/a123x

Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error GoTo Ende
Application.EnableEvents = False 'Ereignisse werden ausgeschaltet
Cancel = True 'Durckauftrag wird annulliert
With ActiveSheet
.Range("A7:B14").Interior.ColorIndex = xlNone 'Zellen werden entfärbt
.PrintOut 'jetzt wird gedruckt
.Range("A7:B14").Interior.ColorIndex = 6 'Zellen werden gefärbt
End With
Ende:
Application.EnableEvents = True 'Ereignisse werden angeschaltet
End Sub

Vor dem Ausdruck muss ja nicht unbedingt etwas stattfinden.
Gruß,
Beate
Anzeige
;
Anzeige

Infobox / Tutorial

Makro NACH Drucken ausführen


Schritt-für-Schritt-Anleitung

Um ein Makro nach dem Drucken auszuführen, kannst du die Workbook_BeforePrint-Ereignisprozedur nutzen. Hier ist eine einfache Anleitung:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Finde im Projektfenster das entsprechende Workbook, in dem du das Makro implementieren möchtest.
  3. Klicke auf Diese Arbeitsmappe (ThisWorkbook).
  4. Füge den folgenden Code ein:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    On Error GoTo Ende
    Application.EnableEvents = False 'Ereignisse ausschalten
    Cancel = True 'Druckauftrag anhalten
    ' Hier kannst du dein Makro oder Code einfügen, der nach dem Drucken ausgeführt werden soll.
    MsgBox "Druckvorgang wird jetzt gestartet."
    .PrintOut 'Druckauftrag wird ausgeführt
Ende:
    Application.EnableEvents = True 'Ereignisse wieder aktivieren
End Sub
  1. Passe den Code nach deinen Bedürfnissen an und speichere die Änderungen.

Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Ereignisse aktiviert sind. Überprüfe auch, ob der Code korrekt im ThisWorkbook-Modul eingefügt wurde.
  • Fehler: Seitenansicht funktioniert nicht.

    • Lösung: Wenn du das Drucken blockierst (Cancel = True), wird auch die Seitenansicht verhindert. Du kannst dies umgehen, indem du den Druckauftrag nur annullierst, wenn bestimmte Bedingungen erfüllt sind.

Alternative Methoden

Eine weitere Möglichkeit, um ein Makro nach dem Drucken auszuführen, ist die Verwendung von Workbook_AfterPrint. Diese Methode wird nach dem Drucken aufgerufen, was dir ermöglicht, direkt nach der Druckausgabe Aktionen durchzuführen. Hier ein Beispiel:

Private Sub Workbook_AfterPrint()
    MsgBox "Das Drucken wurde erfolgreich abgeschlossen!"
    ' Füge hier dein Makro oder Code hinzu
End Sub

Praktische Beispiele

Hier ist ein praktisches Beispiel, das du nutzen kannst, um Zellen vor und nach dem Drucken zu färben:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    On Error GoTo Ende
    Application.EnableEvents = False
    Cancel = True
    With ActiveSheet
        .Range("A1:B10").Interior.ColorIndex = xlNone 'Zellen entfärben
        .PrintOut 'Drucken
        .Range("A1:B10").Interior.ColorIndex = 6 'Zellen färben
    End With
Ende:
    Application.EnableEvents = True
End Sub

Dieses Beispiel zeigt, wie du Zellen vor dem Druck entfernend und nach dem Druck einfärbend kannst.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um das Flackern des Bildschirms während des Druckvorgangs zu vermeiden.
  • Teste dein Makro gründlich, um sicherzustellen, dass es in verschiedenen Szenarien funktioniert.
  • Dokumentiere deinen Code, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich das Makro für verschiedene Drucker anpassen?
Ja, du kannst Bedingungen einfügen, um zu prüfen, welcher Drucker ausgewählt ist, und darauf basierend unterschiedliche Aktionen ausführen.

2. Was ist der Unterschied zwischen BeforePrint und AfterPrint?
BeforePrint wird aufgerufen, bevor der Druckauftrag gestartet wird, während AfterPrint nach Abschluss des Druckvorgangs ausgeführt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige