VBA-Anmeldeformular

Excel VBA-Anmeldeformular

Es ist möglich, ein anmeldebasiertes Benutzerformular in Excel VBA mit allen Dropdown-Listen für die Anmelde-ID zu erstellen, und das Kennwort wird separat freigegeben. Zu einem bestimmten Zeitpunkt müssen Sie eine Idee zum Erstellen eines kennwortbasierten Anmeldebenutzerformulars haben, bei dem der Benutzer seine Benutzer-ID auswählen und das Kennwort eingeben muss, um auf das erforderliche Arbeitsblatt zuzugreifen.

In diesem Artikel zeigen wir Ihnen, wie Sie mit Excel VBA ein Login-Benutzerformular erstellen.

Wie erstelle ich ein Login-Benutzerformular?

Angenommen, Sie haben regionale Verkaufszahlen in verschiedenen Arbeitsblättern. Wir haben 4 verschiedene Zonennamen und jedes Zonenarbeitsblatt enthält nur die zugehörigen Daten. Jetzt besteht die Idee darin, ein Anmeldeformular zu erstellen, in dem der Vertriebsleiter der Zone "Ost" nur die Zonendaten "Ost" sehen sollte, keine anderen Zonen. Als Administrator sollten jedoch alle Arbeitsblätter der Zonen angezeigt werden.

Sie können diese VBA Login Excel-Vorlage hier herunterladen - VBA Login Excel-Vorlage

Zuerst müssen wir einen Blattnamen namens "Admin" einfügen. In diesem Administrationsblatt müssen wir eine Anmelde-ID und ein Kennwort erstellen.

Ich habe die Zone und das Passwort gleich benannt, die Sie später ändern können. Für Zonennamen habe ich den Namensbereich als "ZoneList" erstellt. Dieser "Name Manager" wird später in diesem Login-Benutzerformular verwendet.

Wenn der Benutzer die Datei öffnet, sollte im Hintergrund ein Dummy-Blatt angezeigt werden. Erstellen Sie daher ein neues Blatt und nennen Sie es "Dummy" -Blatt.

Mit diesen Arbeitsblättern erstellen wir ein Login-Benutzerformular.

Schritt 1: Benutzerformular einfügen

Drücken Sie die Taste ALT + F11, um das Fenster des VBA-Editors zu öffnen.

  • Fügen Sie auf der Registerkarte "Einfügen" "Benutzerformular" ein.

  • Dadurch wird ein neues Benutzerformular wie das folgende erstellt.

  • Drücken Sie die Taste F4, um das Eigenschaftenfenster anzuzeigen. Ändern Sie in diesem Eigenschaftenfenster den Namen des Benutzerformulars in "LoginUF".

  • In ähnlicher Weise können wir in diesem Eigenschaftenfenster mit den Eigenschaften des Benutzerformulars spielen. Ich habe einige der Eigenschaftsänderungen vorgenommen. Im folgenden Eigenschaftenfenster können Sie Änderungen an den Eigenschaften des Benutzerformulars vornehmen.

  • Jetzt sieht mein Benutzerformular so aus.

Schritt 2: Benutzerformular entwerfen

  • Fügen Sie aus der Toolbox des Benutzerformulars zwei Beschriftungsfelder ein und geben Sie den Text wie unten gezeigt ein.

  • Fügen Sie aus der Toolbox "Combo Box" ein.

  • Für dieses Excel-Kombinationsfeld müssen die Zonennamen aus dem Arbeitsblatt „Admin Sheet“ abgerufen werden. Geben Sie diesem Kombinationsfeld im Eigenschaftenfenster des Kombinationsfelds zunächst unter der Eigenschaft „Name“ einen Namen als „Zone_List_ComboBox“.

  • Geben Sie in der Eigenschaft "Zeilenquelle" des Kombinationsfelds den Namen ein, der der Zonenliste im "Verwaltungsblatt" zugewiesen wurde.

  • Jetzt sollte unser Kombinationsfeld Zonennamen in seiner Dropdown-Liste in Excel anzeigen.

  • Für "Geben Sie Ihr Passwort ein" müssen Sie ein "Textfeld" aus der Toolbox einfügen.

  • Für dieses "Textfeld" müssen wir die Eigenschaft "Name" und "Password_TB" ändern.

In der Codierung für das VBA-Anmeldeformular wird "Kombinationsfeld" mit dem Namen "Zone_List_ComboBox" und "Textfeld" mit dem Namen "Passwort_TB" bezeichnet.

  • Fügen Sie zwei "Befehlsschaltflächen" ein und geben Sie den Text als "Anmelden" und "Abmelden" ein.

Ändern Sie für die Befehlsschaltfläche "Anmelden" die Namenseigenschaft in "Login_CommandButton" und für die Befehlsschaltfläche "Abmelden" die Namenseigenschaft in "LogOut_CommandButton".

Schritt 3: Code

Wir sind mit dem Entwurfsteil für das VBA-Anmeldebenutzerformular fertig. Es ist Zeit, den Code zu schreiben, um ein anmeldebasiertes Benutzerformular in Excel VBA zu erstellen.

  • Doppelklicken Sie auf die Befehlsschaltfläche "Anmelden". Dadurch wird eine leere Unterprozedur wie die folgende geöffnet.

In diesem Verfahren müssen wir den Code darüber schreiben, was passieren soll, wenn die Schaltfläche „Anmelden“ gedrückt wird.

Ich habe den Code bereits geschrieben. Sie können den Code von unten in das obige Verfahren kopieren und einfügen.

Code:

Private Sub Login_CommandButton_Click () Wenn Zone_List_ComboBox.Value = "" Dann kann MsgBox "Zone nicht leer sein !!!", vbInformation, "Zonenname" Sub End beenden Wenn If Password_TB.Value = "" Dann MsgBox "Passwort kann nicht leer sein !! ! ", vbInformation," Password "Sub End beenden Wenn If Zone_List_ComboBox.Value =" Admin "und Password_TB.Value =" Admin ", dann entladen Sie mich Dim Ws als Arbeitsblatt für jede Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws Sheets ("Admin"). Wählen Sie "Else Dim ZoneName As String Dim Password As Variant". ZoneName = Zone_List_ComboBox.Value Password = Application.WorksheetFunction.VLookup (ZoneName, Sheets ("Admin"). Range ("A: B"), 2, 0 ) Wenn Passwort Password_TB.Value Dann MsgBox "Passwort stimmt nicht überein", vbInformation,"Falsches Passwort" Sub-Ende beenden Wenn If Password = Password_TB.Value, dann entladen Sie mich Blätter (ZoneName) .Visible = True Sheets (ZoneName). Wählen Sie ActiveSheet.Range ("A1"). Wählen Sie End If End If End Sub

Doppelklicken Sie ebenfalls auf die Befehlsschaltfläche "Abmelden" und geben Sie den folgenden Code ein.

Code:

 Private Sub LogOut_CommandButton_Click () ThisWorkbook.Save ThisWorkbook.Close End Sub 

Doppelklicken Sie nun auf "Benutzerformular" (nicht auf eine der eingefügten Schaltflächen) und fügen Sie den folgenden Code hinzu.

Code:

Private Sub UserForm_QueryClose (Als Ganzzahl abbrechen, CloseMode als Ganzzahl) 'Verhindert die Verwendung der Schaltfläche Schließen Wenn CloseMode = vbFormControlMenu Dann MsgBox "Das Klicken auf die Schaltfläche Schließen funktioniert nicht." Abbrechen = True End If End Sub

  • Doppelklicken Sie nun auf das Symbol "ThisWorkbook". Dies wird unter dem leeren Codefeld geöffnet.

Fügen Sie nun den folgenden Code in dieses leere Feld ein.

Code:

 Private Sub Workbook_Open() Dim Ws As Worksheet Application.DisplayAlerts = False Application.ScreenUpdating = False For Each Ws In ActiveWorkbook.Worksheets If Ws.Name  "Dummy" Then Ws.Visible = xlSheetVeryHidden End If Next Ws LogInUF.Show End Sub 

  • We are done with the coding part of the form. Save the workbook as a “Macro-Enabled” workbook and reopen the workbook. Upon reopening the workbook we should see the below window.

  • From this user form, we need to choose the respective zone name and enter the associated password. For example, I will choose the “East” zone from the drop-down and enter the password.

  • If I click on “Log In” we can see only the “East” zone worksheet.

Similarly, if we log in with “Admin” we can access all the worksheets.

Like this, we can create a login based password protected worksheet access.

Things to Remember

  • You need to use the same names that we have given to the user form, text box, and command button and combo box in the coding.
  • You can change the zone name and password according to your wish.