Berechtigung mit Environ Username in Excel VBA
Schritt-für-Schritt-Anleitung
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu starten.
-
Navigiere zu "DieseArbeitsmappe" im Projekt-Explorer.
-
Füge den folgenden Code ein:
Private Sub Workbook_Open()
Dim BerechtigteUser()
BerechtigteUser = Array("Hans", "Herber", "Erwin", "U123456", "Nocheiner")
If Not IsError(Application.Match(Environ("USERNAME"), BerechtigteUser, 0)) Then
MsgBox "Sie sind berechtigt - viel Spaß!"
Else
MsgBox "Sie sind nicht berechtigt, die Datei zu öffnen - Mappe wird geschlossen!", , "ALARM!"
ThisWorkbook.Close False 'Mappe ohne Änderungen speichern
End If
End Sub
-
Speichere die Arbeitsmappe als .xlsm (Makro-fähige Datei).
-
Aktiviere Makros beim Öffnen der Datei, um die Berechtigungsüberprüfung zu ermöglichen.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch:
- Passwortschutz für die Datei verwenden. Dies ist jedoch weniger flexibel, da es nur ein Passwort für alle Benutzer gibt.
- Zellen schützen und die Bearbeitung nur für bestimmte Benutzer freigeben, falls du Excel 2003 oder höher verwendest.
Praktische Beispiele
Hier ist ein Beispiel, wie du das Environ
-Objekt in einer einfachen Funktion verwenden kannst:
Sub CheckUser()
Dim userName As String
userName = Environ("USERNAME")
MsgBox "Willkommen, " & userName & "!"
End Sub
Dieses Skript zeigt den aktuellen Benutzernamen in einer Meldung an.
Tipps für Profis
- Verwende
Environ$("USERNAME")
für eine kürzere Syntax.
- Du kannst auch andere Umgebungsvariablen wie
Environ("USERDOMAIN")
verwenden, um zusätzliche Informationen zu sammeln.
- Denke daran, dass die Sicherheit von VBA-Makros von der Benutzerkonfiguration abhängt. Stelle sicher, dass die Benutzer wissen, wie sie Makros aktivieren können.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Benutzer in der Berechtigungsprüfung hinzufügen?
Du kannst einfach neue Benutzernamen in die Array-Variable BerechtigteUser
einfügen, z.B. BerechtigteUser = Array("Hans", "Herber", "Erwin", "U123456", "Nocheiner", "NeuerBenutzer")
.
2. Was passiert, wenn der Benutzer nicht berechtigt ist?
In diesem Fall wird eine Meldung angezeigt, und die Arbeitsmappe wird geschlossen, ohne Änderungen zu speichern.
3. Kann ich die Sichtbarkeit von Arbeitsblättern steuern?
Ja, du kannst die Sichtbarkeit von Arbeitsblättern mit Worksheets(i).Visible = xlVeryHidden
ändern, um unberechtigten Benutzern den Zugriff auf die Blätter zu verwehren.