VBA Login - Wie erstelle ich ein Anmeldeformular in Excel VBA?

Inhaltsverzeichnis

Excel VBA-Anmeldeformular

Es ist möglich, ein anmeldebasiertes Benutzerformular in Excel VBA mit allen Dropdown-Listen für die Anmelde-ID zu erstellen. 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. Die Idee ist nun, ein Anmeldeformular zu erstellen, in dem der Vertriebsleiter der Zone "Ost" nur die Zonendaten "Ost" sehen sollte, keine anderen Zonen. Als Administrator sollten Sie jedoch alle Arbeitsblätter der Zonen sehen.

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 Eigentumsä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 in der Toolbox "Kombinationsfeld" ein.
  • Für dieses Kombinationsfeld Excel müssen wir die Zonennamen aus dem Arbeitsblatt "Admin Sheet" abrufen. Geben Sie diesem Kombinationsfeld daher 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 "Combo Box" mit dem Namen "Zone_List_ComboBox" und "Text Box" mit dem Namen "Password_TB" bezeichnet.

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

For the “Log In” command button, change the name property to “Login_CommandButton,” and for the “Log Out” command button, change the name property to “LogOut_CommandButton.”

Step 3: Code

We are done with the VBA login user form design part. It’s time to write the code to create a login based user form in excel VBA.

  • Double click on the “Log In” Command Button. This will open a blank sub procedure like the below one.

Inside this procedure, we need to write the code about what should happen if the “Log In” button is pressed.

I have already written the code. You can copy and paste the code from below inside the above procedure.

Code:

Private Sub Login_CommandButton_Click() If Zone_List_ComboBox.Value = "" Then MsgBox "Zone Cannot be Blank!!!", vbInformation, "Zone Name" Exit Sub End If If Password_TB.Value = "" Then MsgBox "Password Cannot be Blank!!!", vbInformation, "Password" Exit Sub End If If Zone_List_ComboBox.Value = "Admin" And Password_TB.Value = "Admin" Then Unload Me Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws Sheets("Admin").Select 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) If Password Password_TB.Value Then MsgBox "Password is not matching", vbInformation, "Wrong Password" Exit Sub End If If Password = Password_TB.Value Then Unload Me Sheets(ZoneName).Visible = True Sheets(ZoneName).Select ActiveSheet.Range("A1").Select End If End If End Sub

Similarly, double click on the “Log Out” command button and enter the below code.

Code:

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

Now double click on “User Form” (not on any of the buttons inserted) and add the below code.

Code:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ' Prevents use of the Close button If CloseMode = vbFormControlMenu Then MsgBox "Clicking the Close button does not work." Cancel = True End If End Sub
  • Now double click on the “ThisWorkbook” icon. This will open up below the blank code field.

Now add the below code in this blank field.

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

  • Sie müssen dieselben Namen verwenden, die wir dem Benutzerformular, dem Textfeld, der Befehlsschaltfläche und dem Kombinationsfeld in der Codierung gegeben haben.
  • Sie können den Zonennamen und das Passwort nach Ihren Wünschen ändern.

Interessante Beiträge...