AW: Tabellenbereich per PW schützen
25.09.2006 16:20:53
fcs
Hallo Thomas,
die einfachste Lösung ist die Anpassung des Blattschutzes beim Öffnen/Schließen der Datei. Folgender Code fragt beim Öffnen der Datei nach dem Passwort und entsperrt dann ggf. den Bereich für die Eingaben. Den String "PasswortEingabe" muss du durch dein Passwort ersetzen! Den Tabellennamen ggf. anpassen.
Beim Schließen wird der Bereich wieder gesperrt.
Werden die Makros beim Öffnen der Datei nicht aktiviert, dann bleiben die Eingabezellen gesperrt.
Den Code im VBA-Editor unter "DieseArbeitsmappe" einfügen. Damit das Passwort für den "einfachen" Anwender nicht eingesehen werden kann muss du natürlich das VBA-Projekt auch schützen. Geht im Editor unter den Eigenschaften des Projekts.
Gruß
Franz
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wks As Worksheet
Set wks = ActiveWorkbook.Worksheets("Tabelle1") 'zu schützende Tabelle
'Änderungsbereich komplett schützen
With wks
.Unprotect ("PasswortEingabe")
.Range("N1:DE200").Locked = True
.Protect Password:="PasswortEingabe"
End With
ActiveWorkbook.Save
End Sub
Private Sub Workbook_Open()
Dim wks As Worksheet, PasswortUser As String
Set wks = ActiveWorkbook.Worksheets("Tabelle1") 'zu schützende Tabelle
PasswortUser = InputBox("Wollen Sie Daten eingeben/ändern?" & vbLf & vbLf _
& "Falls JA, dann bitte Passwort eingeben" & vbLf _
& "Falls NEIN, dann Abbrechen", "Passwortabfrage")
If PasswortUser <> "" Then
If PasswortUser = "PasswortEingabe" Then 'Passwortüberprüfung
'Änderungsbereich entsperren
With wks
.Unprotect ("PasswortEingabe")
.Range("N1:DE200").Locked = False
.Protect Password:="PasswortEingabe"
End With
Else
MsgBox "Das Passwort ist falsch, Sie können nur Daten einsehen!" & vbLf _
& "Für Eingabe Datei schließen und erneut öffnen!"
End If
End If
End Sub