Benutzer Login

Benutzern Zugriff auf unterschiedliche Inhalte unserer Arbeitsmappe gewähren.

Um deine Anwendung professionell und benutzerfreundlich zu gestalten, kannst du mithilfe eines Benutzer Logins angemeldeten Usern wirklich nur relevante Inhalte anzeigen.

Ich zeige dir Schritt für Schritt, wie du dieses Benutzermanagement in deiner Anwendung integrieren kannst.

Schritt 1: Erstelle eine Login-Userform

Erstelle in der VBA Oberfläche deine individuelle UserForm, mit deren Hilfe du die Eingabe des Benutzernamens und des Passworts ermöglichst.

Excel VBA Login UserForm

Schritt 2: Erstelle eine Zugriffsrechte Tabelle

In deiner Excel-Anwendung fügst du eine Tabelle für die Zugriffsrechte hinzu. Du kannst hier Spalten für Benutzername, Passwort und Benutzergruppe festlegen. Füge auch Testdatensätze ein, um die Funktionalität zu überprüfen.

Excel VBA Login UserForm Zugriffsrechte

Schritt 3: Login Daten überprüfen

In der Kernfunktion deiner Zugriffsverwaltung überprüfst du die in der Login-Form eingegebenen Werte mit den hinterlegten Daten in der Zugriffsrechte Tabelle. Außerdem gibst du bei Falscheingaben entsprechende MessageBoxen aus, in denen du auf die fehlerhafte Eingabe hinweist und die Login Prozedur entsprechend abbrichst.

Excel VBA Login UserForm Übersicht
				
					Private Sub btnAnmelden_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

'Variablen dimensionieren
Dim rng As Range

'Benutzername suchen
Set rng = Range("tblZugriffsrechte[Benutzername]").Find(What:=txtBenutzername.Value, LookAt:=xlWhole)

'Prüfen, ob Benutzername angelegt ist
If rng Is Nothing Then

    'Benutzer benachrichtigen
    MsgBox "Dieser Benutzername ist nicht angelegt."
    
    'Prozedur beenden
    Exit Sub

End If

'Prüfen, ob Passwort korrekt ist
If rng.Offset(0,1).Value <> txtPasswort.Value Then

    'Benutzer benachrichtigen
    MsgBox "Das Passwort ist nicht korrekt."
    
    'Prozedur beenden
    Exit Sub
    
End If

'UserForm schließen
Unload Me

End Sub

				
			

Schritt 4: Blende nur die für die Benutzergruppe relevanten Tabellenblätter ein.

Wenn Benutzername und Passwort korrekt eingegeben wurden, kannst du nun über die Benutzergruppe definieren, welche Tabellenblätter sichtbar werden. Erweitere dazu den obenstehenden Code ab Zeile 30, sodass du nach der Prüfung des Benutzernamens und des Passworts die Tabellenblätter entsprechend einblendest.

				
					Dim ws As Worksheet

'Prüfen, ob der Benutzer Admin ist
If rng.Offset(0, 2).Value = "Admin" Then

    'Schleife über alle Tabellenblätter
    For Each ws In ThisWorkbook.Worksheets
    
        'Tabellenblatt einblenden
        ws.Visible = xlSheetVisible
            
    Next ws

ElseIf rng.Offset(0, 2).Value = "Benutzer" Then

    'Schleife über alle Tabellenblätter
    For Each ws In ThisWorkbook.Worksheets
    
        'Prüfen, ob Tabellenblatt Pivot-Tabellen oder Dashboard ist
        If ws.Name <> "Pivot-Tabellen" And ws.Name <> "Dashboard" Then
        
            'Tabellenblatt einblenden
            ws.Visible = xlSheetVisible
            
        End If
            
    Next ws
    
End If

				
			

Schritt 5: Login Umgehung beim Schließen der UserForm

Für den Fall, dass die Login UserForm per Schließen Button geschlossen wird, kannst du die gesamte Anwendung schließen, um eine Login Umgehung zu verhindern.

				
					Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

'Prüfen, ob Schließen Button geklickt wurde
If CloseMode = vbFormControlMenu Then
    
    'Excel Datei schließen
    ThisWorkbook.Close SaveChages:=False

End If

End Sub

				
			

Schritt 6: Login UserForm beim Öffnen anzeigen

Um die UserForm beim Öffnen der Anwendung automatisch anzuzeigen, kannst du folgenden Code verwenden.

				
					Private Sub Workbook_Open()
    UF_LogIn.Show
End Sub

				
			

Schritt 7: Alle Tabellenblätter ausblenden beim Schließen der Arbeitsmappe

Beim Schließen der Anwendung empfiehlt es sich, alle Tabellenblätter (außer die Starseite) automatisch auszublenden, um beim späteren Öffnen wirklich alles ausgeblendet zu haben.

				
					Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
‘Variable dimensionieren
Dim ws As Worksheet

‘Schleife über alle Tabellenblätter
    For Each WS In ThisWorkbook.Worksheets
        If ws.Name <> "Startseite" Then
            ws.Visible = xlSheetVeryHidden
        End If
    Next ws
End Sub

				
			

Ich hoffe diese Tricks helfen dir dabei, deine Anwendung professioneller und benutzerfreundlicher zu gestalten!

Melde dich gerne für meinen Newsletter an und erhalte regelmäßig Tipps & Tricks rund um das Thema Excel VBA!

Teile diesen Beitrag

Empfehlungen für dich

VBATrainer Excel VBA Coaching - Lagerverwaltung

Sichere dir jetzt meine kostenlose Lagerverwaltungs-Anwendung