Hallo! Also ich würde dafür das Blatt erstmal schützen. Hat den Vorteil, dass auch ohen Aktivierung der Makros ein Schutz auf dem Blatt ist.
Bei Diese Arbeitsmappe würde ich dann den Nutzer abfragen und dementsprechend den Balttschutz aufheben / einschränken. Könnte so aussehen.
Private Sub Workbook_Open()
Dim Nutzer As String
Dim admin
Dim anwender
Dim ersteller
ersteller = Array("ich")
anwender = Array("Meier", "Müller")
admin = Array("erster")
Nutzer = Environ("USERNAME")
If UBound(Filter(ersteller, Nutzer, True, vbTextCompare)) > -1 Then
'der ersteller mit den meisten Rechten
ActiveSheet.Unprotect 'ggf. mit Passwort
Else
If UBound(Filter(admin, Nutzer, True, vbTextCompare)) > -1 Then
'für die Admin
ActiveSheet.Unprotect 'ggf. mit Passwort
'ggf. noch Einschränkungen vornehmen
Else
If UBound(Filter(anwender, Nutzer, True, vbTextCompare)) > -1 Then
ActiveSheet.Unprotect 'ggf. mit Passwort
ActiveSheet.Cells.Locked = True
ActiveSheet.Range("K:J").Locked = False
ActiveSheet.Protect 'ggf. noch mit einschränkungen für gesperrte Zeilen und Passwort
End If
End If
End If
End Sub
Man müsste dabei aber beim Beenden den Schutz wieder setzen. So etwa. Viele Grpße
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect 'ggf. mit Passwort
ActiveSheet.Cells.Locked = True
ActiveSheet.Protect
ActiveWorkbook.Save
End Sub
|