Wie kann man Passwörter festlegen, um einzelne Arbeitsblätter für verschiedene Benutzer in Excel zu schützen?
In Excel können Sie unterschiedliche Passwörter für verschiedene Arbeitsblätter festlegen. Das bedeutet, dass ein Benutzer mit einem Passwort Änderungen an einem Arbeitsblatt vornehmen kann, während ein anderer Benutzer mit einem anderen Passwort Änderungen an einem anderen Arbeitsblatt vornehmen kann. Manchmal möchten Sie jedoch, dass jeder Benutzer nur sein eigenes Blatt anzeigen und darauf zugreifen kann. Ist es möglich, dies in Excel zu lösen?
Um jedes Arbeitsblatt einzeln zu schützen und den Zugriff auf die Arbeitsblätter durch Benutzer zu beschränken, wenden Sie bitte den folgenden VBA-Code an:
1. Öffnen Sie eine neue Arbeitsmappe und erstellen Sie ein neues Blatt mit dem Namen „Hauptarbeitsblatt“, siehe Screenshot:
2. Drücken Sie dann die Tasten „Alt“ + „F11“, um das Fenster „Microsoft Visual Basic for Applications“ zu öffnen. Doppelklicken Sie im linken Bereich „Projekt-VBAProjekt“ auf „DieseArbeitsmappe“, um ein leeres Code-Modul zu öffnen, und kopieren Sie dann den folgenden VBA-Code in das Codefenster, siehe Screenshot:
VBA-Code: Passwörter festlegen, um einzelne Blätter von Benutzern zu schützen
Option Explicit
Dim gUserName As String
Dim gUserPass As String
Private Sub Workbook_Open()
'Updateby ExtendOffice
Dim xWShs As Sheets
Dim xWSh As Worksheet
Dim xUserName As String
Dim xPass As String
Dim xBolH As Boolean
GTINPUT:
xUserName = InputBox("Enter the user name")
If TypeName(xUserName) = "String" Then
If xUserName = "" Then
Exit Sub
End If
End If
xUserName = LCase(xUserName)
xPass = InputBox("User name:" & xUserName & Chr(13) & Chr(10) & "Enter the password:")
If TypeName(xPass) = "String" Then
If xPass = "" Then
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Else
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Set xWShs = Worksheets
xBolH = False
For Each xWSh In Worksheets
If xWSh.Name = xUserName Then
xBolH = True
Exit For
End If
Next
If xBolH Then
Set xWSh = xWShs(xUserName)
On Error GoTo GTINPUT2
xWSh.Unprotect (xPass)
xWSh.Visible = True
xWSh.Activate
Else
Set xWSh = xWShs.Add
xWSh.Name = xUserName
xWSh.Activate
End If
gUserName = xUserName
gUserPass = xPass
Exit Sub
GTINPUT2:
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xWSh As Worksheet
On Error Resume Next
Set xWSh = Worksheets(gUserName)
xWSh.Protect Password:=gUserPass, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
For Each xWSh In Worksheets
If xWSh.Name <> "Main" Then
xWSh.Visible = xlSheetVeryHidden
End If
Next xWSh
ActiveWorkbook.Save
End Sub
3. Platzieren Sie den Cursor am Ende des Skripts „Private Sub Workbook_Open()“ und drücken Sie die Taste „F5“, um diesen Code auszuführen. Nun geben Sie im erscheinenden Eingabefeld den Benutzernamen ein, für den Sie ein Blatt erstellen möchten, siehe Screenshot:
4. Klicken Sie anschließend auf die Schaltfläche „OK“. Geben Sie im nächsten Eingabefeld ein Passwort zur Sicherung dieses Blatts ein, siehe Screenshot:
5. Klicken Sie weiterhin auf die Schaltfläche „OK“. Ein neues Blatt mit dem Namen des Benutzers wird sofort erstellt, und Sie können die Daten für diesen Benutzer nach Bedarf eingeben. Siehe Screenshot:
6. Wiederholen Sie die obigen Schritte 3 bis 5, um weitere Blätter nacheinander zu erstellen.
7. Nachdem Sie die Blätter erstellt haben, speichern Sie die aktuelle Arbeitsmappe, indem Sie auf „Datei“ > „Speichern unter“ klicken. Geben Sie im Dialogfeld „Speichern unter“ einen Dateinamen ein und wählen Sie dann das Format „Excel-Makrofähige Arbeitsmappe (*.xlsm)“ aus der Dropdown-Liste „Speichern im Format“ aus, siehe Screenshot:
8. Klicken Sie dann auf die Schaltfläche „Speichern“, um diese Datei zu speichern.
9. Schließen Sie die Arbeitsmappe und öffnen Sie sie erneut. Klicken Sie dann auf „Inhalt aktivieren“ oben in der Formel-Leiste, um den Code zu aktivieren.
10. Nun wird ein Eingabefeld angezeigt, das Sie auffordert, den Benutzernamen und das Passwort einzugeben, um das spezifische Blatt eines bestimmten Benutzers zu öffnen.
11. Zum Schluss senden Sie beim Versand dieser Arbeitsmappe an andere Benutzer den Benutzernamen und das Passwort an den jeweiligen Benutzer. Diese können nur ihre eigenen Blätter öffnen und bearbeiten und haben keine Berechtigung, andere Arbeitsblätter einzusehen.
Beste Büroproduktivitätswerkzeuge
Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen mit Registerkarten in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich hunderte von Mausklicks für Sie!