Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1848to1852
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

Benutzerdefiniertes - Unprotect

Benutzerdefiniertes - Unprotect
12.10.2021 15:09:05
Tobias
Hallo ich bräuchte mal Eure Hilfe!
Ich habe eine .xlsm Datei, die meine Kollegen immer (per Makro, welches beim öffnen ausgeführt wird) "Schreibgeschützt" öffnen. Damit Sie aber nicht nur Informationen nachlesen können sondern auch Informationen gegebenenfalls auch aktualisieren können habe ich einen Button mit einer Userform eingesetzt, wo man die das aktive Arbeitsblatt entsperren und sperren kann. Folgendes Makro wird zum entsperren genutzt:

Sub ArbeitsblattEntsperren()
Dim wSheet As Worksheet
Set wSheet = ActiveSheet
Dim wOriginal As Worksheet
Set wOriginal = ActiveSheet
wSheet.Activate
wSheet.Unprotect "XXXX"
wOriginal.Activate
End Sub
Jetzt ist aber das komplette Arbeitsblatt für die Bearbeitung frei. Die ganzen Menüleisten / Toolbar ect. sind aber (per Makro) für meine Kollegen ausgeblendet und dies soll auch so bleiben!
Und jetzt brauch ich Euch!
Wie schreibe ich das Makro so, dass meine Kollegen zwar Text in die Zellen eintragen können, diese aber auch per rechtsklick nicht formatieren können?
Und kann ich auch nur bestimmte Zellen + Spalten entsperren z.B. A2;A6 / B3 / G;G ?

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

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefiniertes - Unprotect
12.10.2021 15:29:07
Rudi
Hallo,
als Ansatz:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address(0, 0)
Case "A2", "A6", "B3"
Case Else
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Select
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
Gruß
Rudi
AW: Benutzerdefiniertes - Unprotect
12.10.2021 15:39:51
Peter
Ich verstehe das Problem wohl nicht!? Du musst doch nur (bevor du das Blatt schützt) die Zellen entsperren, die veränderbar sein sollen. (Bearbeitbare Zellen auswählen - [Strg]1 - ganz rechts 'Schutz'). Genau dafür ist das doch gemacht!?
Per Makro kannst du beim Öffnen der Mappe auch noch

Worksheets("Blattname").EnableSelection = xlUnlockedCells
eingeben, dann kann man sogar nur noch diese Zellen anwählen (und mit [Tab] zur nächsten springen).
Anzeige
AW: Benutzerdefiniertes - Unprotect
12.10.2021 16:05:18
Tobias
Hallo Peter Trawinski,
danke für deine schnelle Antwort. So wie Du es beschrieben hast war es mal ... nur haben wir auch nicht so Computeraffine Kollegen die nur "beim nachlesen" versehentlich Daten aus den Zellen gelöscht haben bzw "der Computer das von selbst gemacht haben soll". Daher soll das Arbeitsblatt bewusst (wie beschrieben) entsperrt werden, damit sowas umgangen wird.
UND für die Kollegen ... die dann aber meinen müssen alle Zellen mal umformatieren zu müssen so bald Sie die Möglichkeit dazu haben, möchte ich dies auch umgehen wenn möglich.
AW: Benutzerdefiniertes - Unprotect
12.10.2021 16:41:06
Peter
OK, meine Lösung wäre, für die Powerkollegen die editierbaren Zellen zu entsperren (Sub BlattUnlock) und am Ende wieder zu sperren für die anderen (z. B. automatisch bei Private Sub Workbook_BeforeClose(Cancel As Boolean) im Modul "Diese Arbeitsmappe"):

Option Explicit
Const Passwort As String = "ABCD"
Sub BlattUnlock()
With Worksheets("Tabelle1")
.Unprotect Password:=Passwort
Range("D1").Locked = False 'Dies sind die Zellen, die verändert (aber nicht formatiert) werden dürfen
Range("F1").Locked = False 'Müssen alle aufgelistet werden.
Range("G5:H17").Locked = False 'Zusammenhängende Bereiche natürlich auf einmal...
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=Passwort 'So protected darf man nicht formatieren!
'.EnableSelection = xlNoRestrictions 'xlNoRestrictions: Alle Zellen anwählbar - sonst nur die entsperrten
End With
End Sub
Sub BlattLock()
Const Passwort As String = "ABCD"
With Worksheets("Tabelle1")
.Unprotect Password:=Passwort
Cells.Locked = True 'Keine Zelle darf dann mehr verändert werden
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=Passwort
'.EnableSelection = xlNoRestrictions 'xlNoRestrictions: Alle Zellen anwählbar - sonst nur die entsperrten
End With
End Sub

Anzeige
AW: Benutzerdefiniertes - Unprotect
12.10.2021 16:43:53
Peter
Sorry, in
Sub BlattLock()
kann die Zeile
Const Passwort As String = "ABCD"
raus. Hatte ich dann ja schon im Modulkopf definiert...
und ein . fehlt auch
13.10.2021 11:32:29
Rudi

.Cells.Locked = True 'Keine Zelle darf dann mehr verändert werden

AW: Benutzerdefiniertes - Unprotect
12.10.2021 17:28:50
Tobias
Vielen Dank, genau so habe ich es mir vorgestellt, funktioniert super! : )
mir stellt sich aber die Frage ...
12.10.2021 15:42:01
Rudi
...warum du die fraglichen Zellen nicht einfach freigibst anstatt am Blattschutz rumzufudeln.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige