Excel VBA-loginformular
Det er muligt at oprette en loginbaseret brugerformular i excel VBA med alle rullelisten til login-id, og adgangskoden deles separat. På et tidspunkt skal du have en idé om at oprette en adgangskodebaseret login-brugerformular, som kræver, at brugeren vælger deres bruger-id og indtaster adgangskoden for at få adgang til det krævede regneark.
I denne artikel viser vi dig, hvordan du opretter en brugerformular til login ved hjælp af excel VBA.

Sådan oprettes en login-brugerformular?
Antag for eksempel, at du har regionalt salgstal i forskellige regneark. Vi har 4 forskellige zonenavne, og hvert zonearkeark har kun relaterede data. Nu er ideen at oprette en loginformular, hvor "Øst" -zonens salgschef kun skal se "Øst" -zondata, ikke andre zoner, men som administrator skal du se alle zonernes regneark.
Først skal vi indsætte et arknavn, der hedder "Admin." I dette adminark skal vi oprette en "Log-in-id" og "Adgangskode" legitimationsoplysninger.

Jeg har navngivet zonen og adgangskoden de samme, du kan ændre dette senere. For zonenavne har jeg oprettet navneområdet som "ZoneList." Denne "Navneadministrator" vil blive brugt senere på denne login-brugerformular.

Når brugeren åbner filen, skal de se et dummyark i baggrunden, så opret et nyt ark og navngiv det som "Dummy" -ark. "

Ved hjælp af disse regneark opretter vi en login-brugerformular.
Trin 1: Indsæt brugerformular
Tryk på alt = "" + F11-tasten for at åbne VBA Editor-vinduet.

- Indsæt "Brugerformular" under fanen "Indsæt".

- Dette opretter en ny brugerformular som den nedenfor.

- Tryk på F4-tasten for at se vinduet Egenskaber. Fra dette egenskabsvindue skal du ændre navnet på brugerformularen til "LoginUF"

- På samme måde kan vi ved hjælp af dette egenskabsvindue lege med brugerformularens egenskaber. Jeg har foretaget nogle af ejendomsændringerne. Du kan henvise til nedenstående egenskabsvindue for at anvende ændringer til brugerformularens egenskaber.

- Nu ser min brugerformular sådan ud.

Trin 2: Design brugerform
- Indsæt to etiketfelter i værktøjskassen til brugerformularen, og indtast teksten som vist nedenfor.

- Indsæt "Combo Box" fra værktøjskassen.

- For at dette kombinationsfelt udmærker sig, skal vi hente zonenavne fra regnearket "Admin Sheet", så fra egenskabsvinduet i "Combo Box" skal du først give et navn til denne kombinationsboks som "Zone_List_ComboBox" under "Name" -egenskaben .

- Indtast navnet på zonelisten i egenskaberne "Rækkilde" i kombinationsboksen i "Administrationsark".

- Nu skal vores kombinationsboks vise zonenavne i rullelisten i Excel.

- For "Indtast din adgangskode" skal vi indsætte en "Tekstboks" fra værktøjskassen.

- For dette "Tekstfelt" skal vi ændre egenskaben "Navn" og ændre det som "Password_TB."

Nu i kodningen til VBA-loginformularen vil "Combo Box" blive henvist til med navnet "Zone_List_ComboBox", og "Text Box" vil blive henvist til med navnet "Password_TB."
- Indsæt to "kommandoknapper" og indtast teksten som "Log ind" og "Log ud."

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 skal bruge de samme navne, som vi har givet til brugerformularen, tekstfeltet og kommandoknappen og kombinationsboksen i kodningen.
- Du kan ændre zonens navn og adgangskode efter dit ønske.