Excel VBA-aanmeldingsformulier
Het is mogelijk om een op inloggen gebaseerd gebruikersformulier in Excel VBA te maken met alle inlog-id-vervolgkeuzelijsten en het wachtwoord wordt afzonderlijk gedeeld. Op een bepaald moment moet u een idee hebben gehad om een op een wachtwoord gebaseerd gebruikersformulier voor inloggen te maken, waarbij de gebruiker zijn gebruikers-ID moet kiezen en het wachtwoord moet invoeren om toegang te krijgen tot het vereiste werkblad.
In dit artikel laten we u zien hoe u een gebruikersformulier voor inloggen kunt maken met Excel VBA.

Hoe maak ik een aanmeldingsgebruikersformulier aan?
Stel bijvoorbeeld dat u regionale verkoopcijfers in verschillende werkbladen heeft staan. We hebben 4 verschillende zonenamen en elk zone-werkblad heeft alleen de bijbehorende gegevens. Nu is het de bedoeling om een inlogformulier te maken waarbij de verkoopleider van de zone "Oost" alleen de gegevens van de zone "Oost" zou moeten zien, geen andere zones, maar als admin zou u alle werkbladen van de zones moeten zien.
Eerst moeten we een bladnaam invoegen met de naam 'Admin'. In dit admin-blad moeten we een "Log in Id" en "Wachtwoord" inloggegevens aanmaken.

Ik heb de zone en het wachtwoord dezelfde naam gegeven, u kunt dit later wijzigen. Voor zonenamen heb ik het naambereik gemaakt als 'ZoneList'. Deze “Name Manager” zal later op dit login gebruikersformulier worden gebruikt.

Wanneer de gebruiker het bestand opent, zou hij een dummy-blad op de achtergrond moeten zien, dus maak een nieuw blad en noem het "Dummy" -blad. "

Met behulp van deze werkbladen maken we een aanmeldingsformulier voor gebruikers.
Stap 1: Gebruikersformulier invoegen
Druk op alt = "" + F11-toets om het VBA Editor-venster te openen.

- Voeg op het tabblad 'Invoegen' 'Gebruikersformulier' in.

- Hierdoor wordt een nieuw gebruikersformulier gemaakt zoals het onderstaande.

- Druk op de F4-toets om het venster Eigenschappen te zien. Wijzig in dit eigenschappenvenster de naam van het gebruikersformulier in "LoginUF"

- Evenzo kunnen we met dit eigenschappenvenster spelen met de eigenschappen van het gebruikersformulier. Ik heb een aantal eigendomswijzigingen aangebracht. U kunt het onderstaande eigenschappenvenster raadplegen om wijzigingen aan de eigenschappen van het gebruikersformulier toe te passen.

- Nu ziet mijn gebruikersformulier er zo uit.

Stap 2: Ontwerp gebruikersformulier
- Voeg vanuit de toolbox van het gebruikersformulier twee labelvakken in en voer de tekst in, zoals hieronder weergegeven.

- Voer vanuit de toolbox 'keuzelijst met invoervak' in.

- Voor deze excel met keuzelijst met invoervak, moeten we de zonenamen ophalen van het werkblad "Admin Sheet", dus geef vanuit het eigenschappenvenster van de "Combo Box" eerst een naam aan deze keuzelijst als "Zone_List_ComboBox" onder de eigenschap "Name" .

- Voer vanuit de eigenschap 'Rijbron' van de keuzelijst met invoervak de naam in die aan de zonelijst is gegeven in het 'Beheerblad'.

- Nu zou onze combobox de zonenamen in de vervolgkeuzelijst in Excel moeten weergeven.

- Voor "Enter You Password" moeten we een "Text Box" uit de toolbox invoegen.

- Voor dit 'Tekstvak' moeten we de eigenschap 'Naam' wijzigen en deze wijzigen in 'Wachtwoord_TB'.

Nu wordt in de codering voor het VBA-inlogformulier verwezen naar "Combo Box" met de naam "Zone_List_ComboBox" en naar "Text Box" met de naam "Password_TB."
- Voeg twee "Commandoknoppen" in en voer de tekst in als "Inloggen" en "Uitloggen".

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
- U moet dezelfde namen gebruiken die we hebben gegeven aan het gebruikersformulier, het tekstvak en de opdrachtknop en de keuzelijst met invoervak in de codering.
- U kunt de zonenaam en het wachtwoord naar wens wijzigen.