in einem schreibgeschützten Tabellenblatt sollen mehrere Personen ihre Daten eintragen können. Jede Person bekommt ein persönliches Passwort. Nach der Passwortabfrage sollen die Personen nur den diesem Passwort zugewiesenen Zellbereich bearbeiten können. Habe mir hierzu einen VBA-Code zusammengesucht und angepasst, der nur bestimmte Zellbereiche entsperrt. Leider klappt das aber noch nicht so ganz mit den verschiedenen Passwörtern - arbeite hier mit einer Select Case Anweisung.
Hier mein (bisgeriger) Code:
Option Explicit
Public Const strPwBlattschutz_0xxx As String = "Geheim00" 'Zentrales Passwort für Blattschutz
Const strPWBereichsschutz_0315 As String = "Geheim01" 'Passwort für Datenerfassung
Const strPWBereichsschutz_320 As String = "Geheim02" 'Passwort für Datenerfassung
Const strPWBereichsschutz_325 As String = "Geheim03" 'Passwort für Datenerfassung
Const strBereich_0xxx As String = "D10:I13 'Datenbereich der zur Bearbeitung freigegeben wird
Const strBereich_0315 As String = "D10:I10
Const strBereich_0320 As String = "D11:I11
Const strBereich_0325 As String = "D12:I12
Function KST_Verteilung_bearbeiten()
Dim Eingabewert As String
Eingabewert = InputBox("Bitte Passwort zur Bearbeitung eingeben!", "Passwortabfrage")
Select Case Eingabewert
Case Eingabewert = strPWBereichsschutz_0315
With Sheets("Erfassung")
.Unprotect Password:=strPwBlattschutz_0xxx 'Blattschutz wird aufgehoben _
.Range(strBereich_0315).Locked = False 'Zellschutz def. Datenbereich wird aufgehoben
.Protect Password:=strPwBlattschutz_0xxx 'Gesamter Blattschutz wird wieder _
aktiviert
Case Eingabewert = strPWBereichsschutz_0320
With Sheets("Erfassung")
.Unprotect Password:=strPwBlattschutz_0xxx
.Range(strBereich_0320).Locked = False
.Protect Password:=strPwBlattschutz_0xxx
Case Eingabewert = strPWBereichsschutz_0325
With Sheets("Erfassung")
.Unprotect Password:=strPwBlattschutz_0xxx
.Range(strBereich_0325).Locked = False
.Protect Password:=strPwBlattschutz_0xxx
Case Else
MsgBox "Sie haben nicht die Berechtigung die KST-Verteilung zu bearbeiten!", vbCritical, _
"Fehler"
End Select
End Function
Sub KST_Verteilung_beenden()
ActiveSheet.Protect
End Sub
Wenn ich den Code durchlaufen lasse kommt die Fehlermeldung: Fehler beim Kompilieren / Case ohne Select Case. Bei der Fehlersuche stoße ich an meine VBA-Grenzen.Kann mir bitte jemand helfen? Vielen Dank im Voraus.
Gruß,
Stefan