Excel VBA pieteikšanās forma
Excel VBA ar visu pieteikšanās ID nolaižamo sarakstu ir iespējams izveidot uz pieteikšanos balstītu lietotāja veidlapu, un parole tiks kopīgota atsevišķi. Kādā brīdī jums ir jābūt idejai izveidot paroli balstītu pieteikšanās lietotāja veidlapu, kurā lietotājam ir jāizvēlas savs lietotāja ID un jāievada parole, lai piekļūtu vajadzīgajai darblapai.
Šajā rakstā mēs parādīsim, kā izveidot pieteikšanās lietotāja formu, izmantojot Excel VBA.

Kā izveidot pieteikšanās lietotāja veidlapu?
Piemēram, pieņemsim, ka dažādās darblapās jums ir reģiona pārdošanas numuri. Mums ir 4 dažādi zonu nosaukumi, un katras zonas darblapai ir tikai saistītie dati. Tagad ideja ir izveidot pieteikšanās veidlapu, kurā “Austrumu” zonas pārdošanas vadītājam vajadzētu redzēt tikai “Austrumu” zonas datus, nevis citas zonas, bet kā administratoram jums vajadzētu redzēt visas zonu darblapas.
Pirmkārt, mums jāievieto lapas nosaukums ar nosaukumu “Administrators”. Šajā administratora lapā mums jāizveido akreditācijas dati “Pieteikšanās ID” un “Parole”.

Es nosaucu zonu un paroli tāpat, kā to varat mainīt vēlāk. Zonu nosaukumiem esmu izveidojis nosaukumu diapazonu kā “ZoneList”. Šis “Vārdu pārvaldnieks” vēlāk tiks izmantots šajā pieteikšanās lietotāja veidlapā.

Kad lietotājs atver failu, viņam fonā vajadzētu redzēt vienu manekena lapu, tāpēc izveidojiet jaunu lapu un nosauciet to par “Manekena” lapu. ”

Izmantojot šīs darblapas, mēs izveidosim pieteikšanās lietotāja veidlapu.
1. darbība: ievietojiet lietotāja veidlapu
Nospiediet alt = "" + F11 taustiņu, lai atvērtu VBA redaktora logu.

- Cilnē “Ievietot” ievietojiet “Lietotāja veidlapa”.

- Tas izveidos jaunu lietotāja formu, piemēram, zemāk esošo.

- Nospiediet taustiņu F4, lai redzētu logu Rekvizīti. Šajā rekvizītu logā mainiet lietotāja veidlapas nosaukumu uz “LoginUF”

- Līdzīgi, izmantojot šo rekvizītu logu, mēs varam spēlēt ar lietotāja formas īpašībām. Esmu veicis dažas īpašuma izmaiņas. Lai lietotu izmaiņas lietotāja formas rekvizītos, varat atsaukties uz zemāk esošo rekvizītu logu.

- Tagad mana lietotāja veidlapa izskatās šādi.

2. darbība: noformējiet Userform
- Lietotāja formas rīkjoslā ievietojiet divus etiķešu lodziņus un ievadiet tekstu, kā parādīts zemāk.

- Rīkjoslā ievietojiet “Combo Box”.

- Šajā Excel kombinācijas lodziņā mums ir jāsaņem zonu nosaukumi no darblapas “Administrēšanas lapa”, tāpēc no “Combo Box” rekvizītu loga vispirms šim kombinācijas lodziņam dodiet nosaukumu kā “Zone_List_ComboBox” zem “Name” rekvizīta .

- Kombinētā lodziņa rekvizītā “Row Source” ievadiet zonu sarakstam piešķirto nosaukumu sadaļā “Administrator Sheet”.

- Tagad mūsu kombinētajā lodziņā excel nolaižamajā sarakstā jāparāda zonu nosaukumi.

- Lai ievadītu paroli, mums no rīkjoslas jāievieto teksta lodziņš.

- Šajā “Teksta lodziņā” mums jāmaina rekvizīts “Nosaukums” un jāmaina kā “Parole_TB”.

Tagad VBA pieteikšanās formas kodēšanā “Combo Box” tiks nosaukts ar nosaukumu “Zone_List_ComboBox”, bet “Text Box” - ar nosaukumu “Password_TB”.
- Ievietojiet divas komandu pogas un ievadiet tekstu kā “Pieteikties” un “Iziet”.

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
- Jums ir jāizmanto tie paši vārdi, kurus esam piešķīruši lietotāja veidlapai, tekstlodziņam un komandu pogai, kā arī kombinētajai lodziņai kodēšanā.
- Jūs varat mainīt zonas nosaukumu un paroli atbilstoši savai vēlmei.