Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Blattschutz schützt zuviel!

Blattschutz schützt zuviel!
13.06.2005 08:05:58
PeterP
Guten Morgen Excelgemeinde :-)
Mein Wochenstartproblem:
Ein Excel-Blatt (eigentlich 3, was aber prinzipell ja das gleiche ist) ist ein innerbetriebliches Formular, Erläuterungen und Formularfeldüberschriften etc. sind via Geschützt-Formatierung+Blattschutz vor Veränderung geschützt.
Nun sollen aber Feldeintragungen textmäßig formatiert werden können (also z.b. fett, farbig etc.), was aber sofort nach Einschalten des Blattschutzes nicht mehr möglich ist.
Eigenlich ist das ziemlich blöd von Excel, warum werden freigegebene Zelle nicht komplett ungeschützt gelassen - jedenfalls ist das jetzt mein Problem!
Eine weitere Schwierigkeit dabei ist, daß nicht der gesamte Text davon betroffen sein soll, sondern nur ein Teil (einzelne Worte / -gruppen) - sonst könnte man ja eine Formatierroutine schreiben, welche mal kurz den Blattschutz abschalten und nach Formatierung wieder setzt. Sowas bekomme ich im Editiermodus der Zelle aber nicht hin, oder?
Habt Ihr eine Idee, wie man das so lösen könnte, daß der Anwender möglichst nichts davon mitbekommt (VBA ist natürlich an und wird in dieser Datei intensiv genutzt)?
Die Datei komplett neu zu gestalten ist leiser auch keine Option, da 1. enorm viel Designaufwand drinsteckt (Zellenzusammenfassungen, Schriftformatierungen die Les- und gleichzeitige Druckbarkeit gewährleisten, Gültigkeitsprüfungen usw., usf.) und eine neue Datei erst wieder den innerbetrieblichen Zertifizierungsprozess durchlaufen müßte ...
Ich würde mich sehr über Hilfe von Euch freuen!
Gruß&Dank
Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz schützt zuviel!
13.06.2005 08:40:47
PeterP
Meine Lösung, die mir auf die Schnelle eingefallen ist:
Option Explicit

Private Sub Worksheet_Activate()
SchutzAn
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Target.Cells.Locked Then
SchutzAus
Else
SchutzAn
End If
End Sub

Sub SchutzAn()
ActiveSheet.Protect "geheim", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub SchutzAus()
ActiveSheet.Unprotect "geheim"
End Sub
Was meint Ihr - vertretbar? Oder hole ich mir damit Probleme an den Hals, die ich momentan übersehe? Gehts besser (besser gehts eigentlich immer ;-) )?
Danke
Peter
Anzeige
AW: Blattschutz schützt zuviel!
13.06.2005 09:19:39
PeterP
Das artet bißchen in ein Selbstgespräch aus ;-) :
Habt Ihr eine Idee, wie ich trotz der temporären Freischaltung das Einfügen von Zellen/Spalten/Zeilen verhindern kann?
Gruß
Peter
AW: Blattschutz schützt zuviel!
13.06.2005 10:31:09
Kurt
"temporären Freischaltung"
was ist darunter zu verstehen?
mfg Kurt
AW: Blattschutz schützt zuviel!
13.06.2005 13:40:50
PeterP
... guckst Du Code ;-)
wird eine ungesperrte Zelle selektiert, wird der Blattschutz abgeschalten, bei einer gesperrten wieder gesetzt.
Gruß
Peter
AW: Blattschutz schützt zuviel!
15.06.2005 08:22:47
PeterP
Hallo Hans,
danke für den Tip. Aber leider funktioniert das nicht, wenn man (wie in meinem Fall erforderlich) im Editiermodus der Zelle steht.
Im Moment sieht meine Lösung so aus:
(Ich würde mich freuen, wenn mal jemand drüber schaut und mögliche Problemauslöser herausfindet.
Ich habe z.b. Bauchschmerzen mit dem Abschalten der Zellen/Zeilen/Spalten-Einfügeoption, die aber notwendig ist, da diese Änderungen nicht erlaubt sein sollen. Nur wie kann ich _wirklich_ sicherstellen, daß diese Option außerhalb des Sheets _immer_ abgeschalten wird?)
Code im Sheet:

Private Sub Worksheet_Activate()
SchutzAn
EinfAnAus (False)
End Sub


Private Sub Worksheet_Deactivate()
EinfAnAus (True)
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
EinfAnAus (False)
If Not Target.Cells.Locked Then
SchutzAus
Else
SchutzAn
End If
End Sub

Code in Modul:
Sub SchutzAn()
ActiveSheet.Protect "geheim", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub SchutzAus()
ActiveSheet.Unprotect "geheim"
End Sub
Sub EinfAnAus(State As Boolean)
On Error Resume Next
With Application
.CommandBars("Worksheet Menu Bar").FindControl(ID:=295, Recursive:=True).Enabled = State
.CommandBars("Worksheet Menu Bar").FindControl(ID:=296, Recursive:=True).Enabled = State
.CommandBars("Worksheet Menu Bar").FindControl(ID:=297, Recursive:=True).Enabled = State

.CommandBars("Cell").FindControl(ID:=292, Recursive:=True).Enabled = State
.CommandBars("Row").FindControl(ID:=293, Recursive:=True).Enabled = State
.CommandBars("Column").FindControl(ID:=294, Recursive:=True).Enabled = State

.CommandBars("Cell").FindControl(ID:=3181, Recursive:=True).Enabled = State
.CommandBars("Row").FindControl(ID:=3183, Recursive:=True).Enabled = State
.CommandBars("Column").FindControl(ID:=3183, Recursive:=True).Enabled = State
End With
End Sub
Gruß
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige