Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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

Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige