Excel VBA-inloggningsformulär
Det är möjligt att skapa ett inloggningsbaserat användarformulär i excel VBA med alla listrutor för inloggnings-id, och lösenordet kommer att delas separat. Vid någon tidpunkt måste du ha en idé om att skapa ett lösenordsbaserat användarformulär för inloggning, vilket kräver att användaren väljer sitt användar-ID och anger lösenordet för att få åtkomst till det önskade kalkylbladet.
I den här artikeln visar vi dig hur du skapar ett användarformulär för inloggning med hjälp av Excel VBA.

Hur skapar jag ett användarformulär för inloggning?
Antag till exempel att du har regionvisa försäljningsnummer i olika kalkylblad. Vi har fyra olika zonnamn, och varje zons kalkylblad har endast relaterade data. Nu är tanken att skapa ett inloggningsformulär där "Öst" -zonens försäljningschef bara ska se "Öst" -zondata, inte några andra zoner, men som administratör bör du se alla zonernas kalkylblad.
Först måste vi infoga ett arknamn som heter "Admin." I det här administratörsbladet måste vi skapa autentiseringsuppgifterna "Log in Id" och "Password".

Jag har nämnt zonen och lösenordet samma, du kan ändra detta senare. För zonnamn har jag skapat namnområdet som "ZoneList." Denna "Namnhanterare" kommer att användas senare i detta användarformulär för inloggning.

När användaren öppnar filen ska de se ett dummyark i bakgrunden, så skapa ett nytt ark och namnge det som "Dummy" Sheet. "

Med hjälp av dessa kalkylblad skapar vi ett användarformulär för inloggning.
Steg 1: Infoga användarformulär
Tryck på alt = "" + F11 för att öppna VBA Editor-fönstret.

- Från fliken "Infoga" infogar du "Användarformulär."

- Detta skapar ett nytt användarformulär som nedan.

- Tryck på F4-tangenten för att se fönstret Egenskaper. Från detta egenskapsfönster ändrar du namnet på användarformuläret till “LoginUF”

- På samma sätt kan vi använda detta egenskapsfönster med egenskaperna för användarformuläret. Jag har gjort några av fastighetsförändringarna. Du kan se i fönstret nedan för att tillämpa ändringar i användarformulärets egenskaper.

- Nu ser min användarform ut så här.

Steg 2: Utforma användarformulär
- Från verktygsfältet i användarformuläret infogar du två etikettrutor och anger texten, som visas nedan.

- Infoga "Combo Box" från verktygslådan.

- För att denna kombinationsruta ska utmärka oss måste vi hämta zonnamnen från kalkylbladet "Admin Sheet", så från egenskapsfönstret i "Combo Box", ge först ett namn till den här kombinationsrutan som "Zone_List_ComboBox" under "Name" -egenskapen .

- Från egenskapen "Radkälla" i kombinationsrutan anger du namnet på zonlistan i "Admin Sheet."

- Nu ska vår kombinationsruta visa zonnamn i rullgardinsmenyn i Excel.

- För "Ange ditt lösenord" måste vi infoga en "textruta" från verktygslådan.

- För denna "textruta" måste vi ändra egenskapen "Namn" och ändra den som "Lösenord_TB."

Nu i kodningen för VBA-inloggningsformulär kommer "Combo Box" att hänvisas till med namnet "Zone_List_ComboBox" och "Text Box" kommer att hänvisas till med namnet "Password_TB."
- Sätt i två "Kommandoknappar" och skriv in texten som "Logga in" och "Logga ut."

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
- Du måste använda samma namn som vi har gett till användarformuläret, textrutan och kommandoknappen och kombinationsrutan i kodningen.
- Du kan ändra zonnamn och lösenord enligt dina önskemål.