Mit VBA Environ("Username") arbeiten in Excel
Schritt-für-Schritt-Anleitung
Um den Environ("Username") in VBA zu verwenden, gehe wie folgt vor:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Klicke mit der rechten Maustaste auf einen Eintrag im Projektfenster und wähle
Einfügen > Modul.
-
Code einfügen:
- Verwende den folgenden Code, um den Button basierend auf dem Benutzernamen ein- oder auszublenden:
Sub ToggleButtonVisibility()
With Worksheets("START")
.Shapes("cmb_ENTRY").Visible = _
Not IsError(Application.Match(Environ("Username"), Sheets("SETT").Range("B15:B19"), 0))
End With
End Sub
-
Ausführen:
- Führe das Makro aus, um zu testen, ob der Button korrekt angezeigt wird.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Environ("Username") nicht das gewünschte Ergebnis liefert, kannst du alternative Methoden in Betracht ziehen:
-
Verwendung von Application.UserName:
- Anstelle von
Environ("Username") kannst du auch Application.UserName verwenden, um den aktuell angemeldeten Benutzer zu ermitteln.
.Shapes("cmb_ENTRY").Visible = _
Not IsError(Application.Match(Application.UserName, Sheets("SETT").Range("B15:B19"), 0))
-
Benutzerdefinierte Formeln:
- Erstelle eine benutzerdefinierte Funktion, um den Benutzernamen abzurufen und zu verarbeiten.
Praktische Beispiele
Hier sind einige Beispiele, die dir helfen können, Environ("Username") effektiv zu nutzen:
-
Ein- und Ausblenden von Schaltflächen:
Sub ToggleButton()
Dim userName As String
userName = Environ("Username")
If userName = "admin" Then
Worksheets("START").Shapes("cmb_ENTRY").Visible = True
Else
Worksheets("START").Shapes("cmb_ENTRY").Visible = False
End If
End Sub
-
Benutzerrechte prüfen:
Sub CheckUserRights()
If Not IsError(Application.Match(Environ("Username"), Sheets("SETT").Range("B15:B19"), 0)) Then
MsgBox "Zugriff gewährt!"
Else
MsgBox "Zugriff verweigert!"
End If
End Sub
Tipps für Profis
-
Debugging nutzen:
- Verwende die
F8-Taste, um deinen Code schrittweise zu durchlaufen und Variablenwerte zu überprüfen.
-
Typ-Umwandlungen:
- Vergewissere dich, dass die Daten in den Zellen den richtigen Datentyp haben. Du kannst numerische Werte in Strings umwandeln, indem du sie mit
1 multiplizierst.
-
Fehlerbehandlung:
- Implementiere Fehlerbehandlung in deinen VBA-Skripten, um unerwartete Probleme zu vermeiden.
FAQ: Häufige Fragen
1. Was ist der Unterschied zwischen Environ("Username") und Application.UserName?
Environ("Username") gibt den Windows-Benutzernamen zurück, während Application.UserName den in Excel eingestellten Benutzernamen zurückgibt.
2. Warum funktioniert mein Code nicht, obwohl der Benutzername korrekt ist?
Überprüfe, ob die Benutzer in der Range als Strings formatiert sind und ob die Schreibweise übereinstimmt.
3. Wie kann ich mehrere Benutzernamen in einer Liste prüfen?
Verwende Application.Match in Kombination mit einer Range, um zu prüfen, ob der Benutzername in der Liste vorhanden ist.