Ich sollte ein VBA Script unmittelbar VOR dem drucken ausführen können und ein anderes unmittelbar NACH dem drucken.
Hintergrund:
Es sind farbige Zellen vorhanden, die vor dem Druck auf „weiss“ geändert werden müssen. Nach dem Druck sollten diese aber wieder auf „farbig“ geändert werden.
Ich habe ein BeforePrint Ereignis gesehen aber irgendwie geht das nicht wirklich. Vorallem klappt das ja dort nur für _VOR_ dem drucken und nicht danach.
wenn die damit geholfen ist:
Makro in diese Arbeitsmappe:
Private Sub workbook_beforeprint(cancel As Boolean)
ActiveSheet.Cells.Interior.ColorIndex = xlNone
End Sub
Makro in Modul
Sub farbe_zuweisen()
Range(„B3:B5,D6:smiley:10,B15:B20“).Select
Range(„B15“).Activate
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Range(„A1“).Select
End Sub
Makro in entsprechendes Arbeitsblatt
Sub worksheet_activate()
farbe_zuweisen
End Sub
Der einzige Nachteil, der daraus entsteht ist, dass nach dem Drucken zuerst ein anderes Tabellenblatt aktiviert werden muss, um die Farben dementsprechend zuzuweisen.
mir fällt momentan nichts besseres ein
glaub das ist besser
Hab mich ein bischen in der Excelhilfe umgeschaut und hab da glaub ich etwas besseres entdeckt:
Private Sub workbook_beforeprint(cancel As Boolean)
ActiveSheet.PageSetup.BlackAndWhite = True
End Sub
Dieses Makro stellt dir vor dem Drucken einfach die Druckeinstellung auf Schwarzweis um.
ich glaub hiermit kommst du einer lösung deines Problemes näher als das von mir vorhergehend gesendete
du könntest zum Bleistift das Ereignis BeforePrint benutzen, dort deine Einstellungen rein.
Dann fügst du dort Code zum Ausdrucken hinzu und danach das Aufräumen. Dann setzt du einfach Cancel=True damit Excel den Druckauftrag, welcher das Ereignis ausgelöst hat, abbricht. Also ich könnte mir das in entwa so vorstellen:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Call DruckVorbereiten
ThisWorkbook.PrintOut
Call DruckAufraeumen
Cancel = True
End Sub
Je nachdem wie das Ausdrucken ablaufen soll, musst du PrintOut noch mit Parametern füttern oder eben nicht.