„Excel VBA“ prisijungimo forma
Programoje „Excel VBA“ galima sukurti prisijungimo forma pagrįstą vartotojo formą su visu išskleidžiamajame prisijungimo ID, ir slaptažodis bus bendrinamas atskirai. Tam tikru laiko momentu jūs turite turėti mintį sukurti slaptažodžiu pagrįstą prisijungimo vartotojo formą, kurioje vartotojui reikia pasirinkti savo vartotojo ID ir įvesti slaptažodį, norint pasiekti reikiamą darbalapį.
Šiame straipsnyje mes parodysime, kaip sukurti prisijungimo vartotojo formą naudojant „Excel VBA“.

Kaip sukurti prisijungimo vartotojo formą?
Pvz., Tarkime, kad skirtinguose darbalapiuose turite pardavimų skaičių pagal regionus. Mes turime 4 skirtingus zonų pavadinimus ir kiekviename zonos darbalapyje yra tik susiję duomenys. Dabar idėja yra sukurti prisijungimo formą, kurioje „Rytų“ zonos pardavimų vadovas turėtų matyti tik „Rytų“ zonos duomenis, o ne kitas zonas, bet kaip administratorius turėtumėte pamatyti visus zonų darbalapius.
Pirmiausia turime įterpti lapo pavadinimą „Administratorius“. Šiame administratoriaus lape turime sukurti „Prisijungimo ID“ ir „Slaptažodžio“ kredencialus.

Aš pavadinau zoną ir slaptažodį tuo pačiu, kurį galite pakeisti vėliau. Zonų pavadinimams sukūriau pavadinimų diapazoną kaip „ZoneList“. Ši „Vardų tvarkyklė“ bus naudojama vėliau šioje prisijungimo vartotojo formoje.

Kai vartotojas atidaro failą, jis turėtų pamatyti vieną fiktyvų lapą fone, todėl sukurkite naują lapą ir pavadinkite jį kaip „Manekeno“ lapą. “

Naudodami šiuos darbalapius sukursime prisijungimo vartotojo formą.
1 veiksmas: įterpkite vartotojo formą
Paspauskite alt = "" + F11 klavišą, kad atidarytumėte VBA redaktoriaus langą.

- Skirtuke „Įterpti“ įterpkite „Vartotojo forma“.

- Tai sukurs naują vartotojo formą, panašią į toliau pateiktą.

- Paspauskite klavišą F4, kad pamatytumėte langą Ypatybės. Šiame ypatybių lange pakeiskite vartotojo formos pavadinimą į „LoginUF“

- Panašiai, naudodamiesi šiuo ypatybių langu, galime žaisti su vartotojo formos ypatybėmis. Aš padariau kai kuriuos turto pakeitimus. Norėdami pritaikyti vartotojo formos ypatybių pakeitimus, galite kreiptis į toliau pateiktą ypatybių langą.

- Dabar mano vartotojo forma atrodo taip.

2 žingsnis: suprojektuokite „Userform“
- Iš vartotojo formos įrankių dėžutės įdėkite du etikečių langelius ir įveskite tekstą, kaip parodyta žemiau.

- Iš įrankių dėžutės įterpkite „Combo Box“.

- Kad šis „Combo Box“ būtų puikus, mes turime gauti zonų pavadinimus iš darbalapio „Administratoriaus lapas“, todėl iš „Combo Box“ ypatybių lango pirmiausia pavadinkite šį kombinuotą laukelį kaip „Zone_List_ComboBox“ po savybe „Name“ .

- Kombinuoto langelio ypatybėje „Eilučių šaltinis“ įveskite zonų sąrašui suteiktą pavadinimą „Administratoriaus puslapyje“.

- Dabar mūsų kombinuotame laukelyje „Excel“ išskleidžiamajame sąraše turėtų būti rodomi zonų pavadinimai.

- Norėdami įvesti slaptažodį, iš įrankių dėžutės turime įterpti „teksto laukelį“.

- Šiame „teksto laukelyje“ turime pakeisti ypatybę „Pavadinimas“ ir pakeisti ją kaip „Slaptažodis_TB“.

Dabar VBA prisijungimo formos kodavime „Combo Box“ bus nurodytas pavadinimu „Zone_List_ComboBox“, o „Text Box“ - „Password_TB“.
- Įdėkite du „Komandos mygtukus“ ir įveskite tekstą kaip „Prisijungti“ ir „Atsijungti“.

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
- Turite naudoti tuos pačius vardus, kuriuos suteikėme vartotojo formai, teksto laukeliui ir komandų mygtukui bei kombinuotam laukeliui koduoti.
- Galite pakeisti zonos pavadinimą ir slaptažodį pagal savo norą.