Ich bin noch einmal bei euch, betreff Laufzeitfehler bei BeforePrint.
Modul: Diese Arbeitsmappe
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Static wirklichDrucken As Boolean 'Semaphore
Dim wks1 As Worksheet, wks2 As Worksheet
If Not wirklichDrucken Then
Cancel = True
wirklichDrucken = True
'Zellenfarbe entfernen
Set wks1 = Worksheets("Zusammenfassung")
Set wks2 = Worksheets("Abrechnung")
wks1.Range("F12:I15,B21,B22:D22,H21:H22,A42,B45:B46").Interior.ColorIndex = xlNone
wks2.Range("C6:C9,C11,C13").Interior.ColorIndex = xlNone
ThisWorkbook.PrintOut
' Set wks1 = Worksheets("Zusammenfassung")
Set wks2 = Worksheets("Abrechnung")
' 'Zellenfarbe setzen
With wks1.Range("F12:I12,F12:I15,B21,B22:D22,H21:H22,A42,B45:B46").Interior
.ColorIndex = 36
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
With wks2.Range("C6:C9,C11,C13").Interior
.ColorIndex = 36
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Else
wirklichDrucken = False
End If
End Sub
Folgendes:
Wenn ich auf das Drucker-Symbol klicke funktionierts! Wenn ich auf das Seitenansicht-Symbol klicke, gibts Laufzeitfehler bei
wks1.Range("F12:I15,B21,B22:D22,H21:H22,A42,B45:B46").Interior.ColorIndex = xlNone
Habe herausgefunden, dass wenn ich den Range-Bereich einzel von Zellenformat lösche gehts!
wks1.Range("B22:D22").Interior.ColorIndex = xlNone
wks1.Range("H21:H22").Interior.ColorIndex = xlNone
wks1.Range("A42").Interior.ColorIndex = xlNone
wks1.Range("B45:B46").Interior.ColorIndex = xlNone
wks2.Range("C6:C9").Interior.ColorIndex = xlNone
wks2.Range("C11").Interior.ColorIndex = xlNone
wks2.Range("C13").Interior.ColorIndex = xlNone
Wieso? Weiss nicht mehr weiter und verliere das Vertrauen in VBA :-(
Gruss Thomas