Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1144to1148
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
einzelne Zellen per Passwort entsperren, VBA
Evil-Steve
Hallo zusammen,
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: einzelne Zellen per Passwort entsperren, VBA
19.03.2010 10:48:03
Hajo_Zi
Hallo Stefan,
warum Code,
Register Überprüfen, Befehlsgrupe Änderungen, Benutzer dürfen Bereich bearbeiten.

AW: einzelne Zellen per Passwort entsperren, VBA
19.03.2010 12:03:23
Evil-Steve
Hallo,
vielen Dank für die schnellen Antworten. Funktionieren alle einwandfrei.
Hajos Lösung kannte ich noch nicht - cool!
Gruß,
Stefan
Es fehlt überall "End With"...
19.03.2010 10:48:51
Ramses
Hallo
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 _
End With
Das musst du in allen Case-Anweisungen noch hinzufügen
Ausserdem sind deine Variablen im Dekalrationsbereich und code unterschiedlich
Deklaration
Const strPWBereichsschutz_320 As String = "Geheim02" 'Passwort für Datenerfassung
und im Code
Case Eingabewert = strPWBereichsschutz_0320
Gruss Rainer
Anzeige
AW: einzelne Zellen per Passwort entsperren, VBA
19.03.2010 10:50:56
Reinhard
Hallo Stefan,
With Sheets("Erfassung")
Select Case Eingabewert
Case strPWBereichsschutz_0315
.Unprotect Password:=strPwBlattschutz_0xxx
.Range(strBereich_0315).Locked = False
.Protect Password:=strPwBlattschutz_0xxx
Case strPWBereichsschutz_0320
.Unprotect Password:=strPwBlattschutz_0xxx
.Range(strBereich_0320).Locked = False
.Protect Password:=strPwBlattschutz_0xxx
Case strPWBereichsschutz_0325
.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 With

Gruß
Reinhard
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige