Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
576to580
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
576to580
576to580
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

BeforePrint - Fehler

BeforePrint - Fehler
01.03.2005 17:47:40
Thomas
Hallo Zusammen
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

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: BeforePrint - Fehler
01.03.2005 19:46:39
Luc:-?
Hallo Thomas,
das Vertrauen in MS kann man leicht verlieren, VBA ist ein bitchen besser! Ich denke, dass du bei allen anderen Ranges, die eine Mehrfachauswahl repräsentieren, ebenfalls diese Fehlermeldung bekommen müsstest. Mich wundert nicht, dass das WirklichDrucken funktioniert, denn da wdn diese Befehle ja nicht abgearbeitet. Du musst diese nicht zusammenhängenden Bereiche erst mit der Union-Methode zusammenfassen. Dann sollte es klappen.
Gruß Luc
AW: BeforePrint - Fehler
01.03.2005 20:16:13
Thomas
Hi Luc
Ja, der Fehler kommt bei allen Mehrfachranges! Komisch aber nur bei Seitenansicht, nicht bei Drucken.
Habs mit Union versucht:
Set wks1 = Worksheets("Zusammenfassung")
Set wks2 = Worksheets("Abrechnung")
Set r1 = wks1.Range("B22:D22")
Set r2 = wks1.Range("H21:H22")
Set r3 = wks1.Range("A42")
Set r4 = wks1.Range("B45:B46")
Set r5 = wks2.Range("C6:C9")
Set r6 = wks2.Range("C11")
Set r7 = wks2.Range("C13")
Set Quellbereich = Union(r1, r2, r3, r4, r5, r6, r7)
Quellbereich.Interior.ColorIndex = xlNone
Gibt aber den gleichen Laufzeitfehler zurück.
Sche.... Lass ich das eben sein, wäre aber ein schöner Lerneffekt gewesen mit BeforPrint.
Gruss Thomas
Anzeige
wundert mich, teste mal, melde m.morgen - owT
01.03.2005 20:31:50
Luc
AW: BeforePrint - Fehler - alles klar!
02.03.2005 12:01:53
Luc
Hallo Thomas,
so, wie versprochen...
Der Fehler besteht darin, das Union nicht Bereiche verschiedener Blätter zusammenfassen kann. Du müsstest also auf jeden Fall für jedes Blatt einen Befehl schreiben. Da ich die Anlage so vieler Variablen für unnötig halte, hab ich dir hier mal beigelegt wie ich das machen würde. Dann macht auch with Sinn. Wenn du deine Variable Quellbereich als Datenfeld anlegst, könntest du das Farblöschen für viele Blätter rationeller gestalten (mittels Schleife). Übrigens gibt .ColorIndex 2 andere xlKonstanten als xlNone vor. Die haben aber den gleichen Wert - also geschenkt.

Sub ZellEntfärb()
Dim Quellbereich(1) As Range
With ActiveWorkbook.Sheets("Zusammenfassung")
Set Quellbereich(0) = Union(.Range("B22:D22"), _
.Range("H21:H22"), .Range("A42"), .Range("B45:B46"))
End With
With ActiveWorkbook.Sheets("Abrechnung")
Set Quellbereich(1) = Union(.Range("C6:C9"), _
.Range("C11"), .Range("C13"))
End With
Quellbereich(0).Interior.ColorIndex = xlNone
Quellbereich(1).Interior.ColorIndex = xlNone
End Sub

Aber wie gesagt, im Prinzip brauchst du nur 2 Quellbereiche.
Ciao Luc
Anzeige
AW: BeforePrint - Fehler - alles klar!
02.03.2005 19:22:42
Thomas
Hallo Luc
Konnte deinen Code erst jetzt testen.
Vorweg: Vielen Dank für deine Hilfe!!!
Leider bringt auch dieser Code auf meinem Kasten den Laufzeitfehler: "Die Color-Index Eigenschaft des Interior-Objektes kann nicht festgelegt werden." bei: Quellbereich(1).Interior.ColorIndex = xlNone
Habe es jetzt so gelöst, dass jeder Bereich einzel entfärbt wird. Aufwändig, aber wenigstens funktionierts.
Danke nochmals.
Gruss Thomas
AW: BeforePrint - Fehler - seltsam?!
03.03.2005 08:57:52
Luc
Hallo Thomas,
da muss dann MS was verschlimmbessert haben - unter MSO2k funkts ausgezeichnet. Warum meldet er den Fehler erst bei Qbereich(1) und nicht schon bei Qbereich(0)? Oder hast du die Indizes verändert? Ist der Qbereich richtig dimensioniert? Beginnen die Indizes mit 0 oder erst mit 1 (konnte bisher eingestellt wdn, Standard war 0)?
Gruß Luc
Anzeige
AW: BeforePrint - Fehler - seltsam?!
03.03.2005 10:01:43
Thomas
Hi Luc
Habe zuerst alles so gemacht, wie du vorgeschlagen hast. Dann habe ich auch versucht, den Quellbereich anders zu dimensionieren. Hat leider alles nicht den gewünschten Erfolg gebracht.
Habe mich auch gewundert, warum erst bei Quellbereich(1) und nicht schon bei (0).
Naja, der Fachmann wundert sich, der Laie staunt !
Bill Gates ist ja jetzt zum Ritter geschlagen worden, vielleicht kann er jetzt mein Problem lösen :-)
Gruss Thomas
@Thomas: OK - u take it easy! - owT
03.03.2005 12:30:54
Luc

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige