Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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
Inhaltsverzeichnis

Schreibgeschützt; farbige Zellen nicht drucken

Schreibgeschützt; farbige Zellen nicht drucken
21.09.2015 15:09:35
Falco
Hallo,
ich habe folgendes Problem:
Es sollen von Mitarbeitern diverse Zellen ausgefüllt werden, diese sind farblich markiert. Beim Drucken und speichern (speziell pdf) soll diese farbliche Markierung wieder weg sein. Zudem soll das Arbeitsblatt bzw. die Arbeitsmappe schreibgeschützt sein damit niemand etwas verändern kann.
Die farbigen Zellen bestehen aus teils verbundenen, teils als Tabellenform oder einzeln.
Mein bisheriger Ansatz mit zwei Ereignisprozeduren:
Zuerst benenne ich den Bereich, der hervorgehoben werden soll mit dem Namen "farbig". Danach _ weis ich "DieseArbeitsmappe" den folgenden Code zu:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Worksheets("Tabelle3").Range("farbig").Interior.ColorIndex = xlNone
Worksheets("Tabelle3").Range("farbig2").Interior.ColorIndex = xlNone
End Sub

Dem betroffenen Tabellenblatt habe ich noch folgenden Code hinzugefügt:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Worksheets("Tabelle3").Range("farbig").Interior.ColorIndex = 3
Worksheets("Tabelle3").Range("farbig2").Interior.ColorIndex = 3
End Sub

Das funktioniert soweit alles gut ohne den Schreibschutz, mit hingegen kommt immer:
Laufzeitfehler 1004; Anwendungs- oder objektdefinierter Fehler
Ich habe auch schon herausgefunden das der Fehler aufgrund der fehlenden Zugriffsrechten des Makros entsteht. Jedoch fehlt mir das wissen dies nun zu vollenden.
MfG
Falco

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Worksheets("Tabelle3").UnProtect "Passwort" owT
21.09.2015 15:17:09
Rudi

AW: Worksheets("Tabelle3").UnProtect "Passwort" owT
22.09.2015 08:22:33
Falco
Danke,
mit der Zeile habe ich es hinbekommen, siehe unten. Es funktioniert super.
Es gibt vielleicht noch ein Feintuning bedarf.
Jedes mal wenn ich nun im Excel eine neue Zelle anklicke, braucht der Rechner/die Datei eine Sekunde und wird träge. Auf Dauer ist das nervig. Ich vermute das er dass Makro bei jeden neuen Klick komplett durchrechnet. Von den unten zusehenden Worksheets existieren 8 Stück und später auch mehr + die Arbeitsmappe.
Was könnte man noch verändern? Excel muss die markierten Zellen ja nur nach dem Drucken wieder farbig machen und nicht nach jeden Klick auf eine Zelle.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Worksheets("Seite 1").Unprotect "FH"
Worksheets("Seite 1").Range("Ofenanlage").Interior.ColorIndex = 6
Worksheets("Seite 1").Range("Prüftag").Interior.ColorIndex = 6
Worksheets("Seite 1").Range("Techniker").Interior.ColorIndex = 6
Worksheets("Seite 1").Range("Betreuer").Interior.ColorIndex = 6
Worksheets("Seite 1").Protect "FH"
End Sub

Anzeige
AW: Worksheets("Tabelle3").UnProtect "Passwort" owT
22.09.2015 09:18:19
Falco
Könnte man nicht hier noch ein Ansatz finden:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Worksheets("Seite 1").Unprotect "FH"
Worksheets("Seite 1").Range("Ofenanlage").Interior.ColorIndex = xlNone
Worksheets("Seite 1").Range("Prüftag").Interior.ColorIndex = xlNone
Worksheets("Seite 1").Protect "FH"
Worksheets("Seite 3").Unprotect "FH"
Worksheets("Seite 3").Range("Ofenanlage").Interior.ColorIndex = xlNone
Worksheets("Seite 5").Protect "FH"
End Sub

Private Sub Workbook_AfterPrint(Cancel As Boolean)
Worksheets("Seite 1").Unprotect "FH"
Worksheets("Seite 1").Range("Ofenanlage").Interior.ColorIndex = 6
Worksheets("Seite 1").Range("Prüftag").Interior.ColorIndex = 6
End Sub

Anzeige
AW: Worksheets("Tabelle3").UnProtect "Passwort" owT
22.09.2015 15:42:05
Falco
Wenn ich den Ansatz in der Arbeitsmappe durchführe, bringt er immer eine Fehlermeldung (1004 wie oben) mitten in der Rechenschleife bei:
...
Worksheets("Seite 5").Range("Ofenanlage").Interior.ColorIndex = xlNone
...
Ich verstehe nicht warum es erst auf der Seite 5 einen Fehler gibt die an sich identisch ist wie die 4 zuvor...
MfG Falco

AW: Schreibgeschützt; farbige Zellen nicht drucken
21.09.2015 15:37:43
Daniel
HI
würde ich so lösen:
1. erstelle für alle betroffnenen Zellen eine Bedingte Formatierung mit folgender Formel als Regel: =Tablle1!$A$1=WAHR
verwende als Format dasjenige, welches die Zellen beim Ausdruck haben sollen (Hintergrund weiss).
2. um jetzt die Datei für den Ausdruck umzuformatieren, gibst du einfach in die verwendete Zelle den Wert WAHR ein.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Sheets("tabelle1").Range("A1").Value = True
End Sub
für die Zelle, über die du die Bedingte Formatierung steuerst, nimmst du einfach das Häkchen bei "Gesperrt" in der Formatierung - Schutz raus, dann kannst du diese Zelle auch bei aktivem Blattschutz einfach ändern.
hat auch den Vorteil, dass du dann einfach eine Datei ändern kannst, (andere Farben, neue Zellen usw) ohne dass du im Code was ändern musst.
Gruß Daniel
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige