Excel 2000/XP & VBA & Events

Heyho ihrs :wink:

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.

Irgendwelche VOrschläge ?

Gruss

Chris

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

Hallo Chris,

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.

Gruß
Daniel