VBA Bejelentkezés - Hogyan hozzunk létre bejelentkezési űrlapot az Excel VBA-ban?

Excel VBA bejelentkezési űrlap

Lehetőség van bejelentkezési alapú felhasználói űrlap létrehozására az excel VBA-ban az összes bejelentkezési azonosító legördülő listával, és a jelszót külön megosztjuk. Az idő egy pontján meg kell győződnie arról, hogy létrehoz egy jelszó-alapú bejelentkezési felhasználói űrlapot, amely megköveteli, hogy a felhasználó válassza ki a felhasználói azonosítóját, és adja meg a jelszót a szükséges munkalap eléréséhez.

Ebben a cikkben megmutatjuk, hogyan hozhat létre bejelentkezési felhasználói űrlapot az excel VBA használatával.

Hogyan hozzunk létre bejelentkezési felhasználói űrlapot?

Tegyük fel például, hogy régiónként rendelkezik értékesítési számokkal a különböző munkalapokon. 4 különböző zónanevünk van, és minden zóna munkalapon csak a kapcsolódó adatok vannak. Az ötlet egy bejelentkezési űrlap létrehozása, ahol a „kelet” zóna értékesítési vezetője csak a „keleti” zóna adatait látja, semmilyen más zónát nem, de rendszergazdaként látnia kell az összes zóna munkalapot.

Először be kell illesztenünk egy „Admin” nevű lapnevet. Ebben az adminisztrációs lapban létre kell hoznunk egy „Bejelentkezés azonosító” és „Jelszó” hitelesítő adatokat.

Ugyanazt neveztem el a zónának és a jelszónak, amelyet később módosíthat. A zónaneveknél a névtartományt „ZoneList” néven hoztam létre. Ezt a „Névkezelőt” később fogják használni a bejelentkezési felhasználói űrlapon.

Amikor a felhasználó megnyitja a fájlt, egy dummy lapot kell látnia a háttérben, ezért hozzon létre egy új lapot, és nevezze el „Dummy” munkalapnak. ”

Ezekkel a munkalapokkal létrehozunk egy bejelentkezési felhasználói űrlapot.

1. lépés: Helyezze be a felhasználói űrlapot

Nyomja meg az alt = "" + F11 billentyűt a VBA Editor ablak megnyitásához.

  • A „Beszúrás” fülön illessze be a „Felhasználói űrlapot”.
  • Ez új felhasználói űrlapot hoz létre, mint az alábbiak.
  • Nyomja meg az F4 billentyűt a Tulajdonságok ablak megjelenítéséhez. Ebben a tulajdonságablakban módosítsa a felhasználói űrlap nevét „LoginUF” -re
  • Ehhez hasonlóan ennek a tulajdonságablaknak a segítségével játszhatunk a felhasználói űrlap tulajdonságait is. Néhány tulajdonváltoztatást végrehajtottam. Az alábbi tulajdonságablakra hivatkozva módosíthatja a felhasználói űrlap tulajdonságait.
  • Most a felhasználói űrlapom így néz ki.

2. lépés: Felhasználói forma megtervezése

  • A userform eszköztárából helyezzen be két címke mezőt, és írja be a szöveget az alábbiak szerint.
  • Az eszköztárból illessze be a „Combo Box” elemet.
  • Ehhez a combo box excelhez meg kell szereznünk a zónaneveket az „Admin Sheet” munkalapról, ezért a „Combo Box” tulajdonságablakában először adjon nevet ennek a kombinációs mezőnek „Zone_List_ComboBox” névként a „Name” tulajdonság alatt. .
  • A kombinált mező „Sorforrás” tulajdonságából írja be a zónalista nevét az „Adminisztrációs lap” mezőbe.
  • Most a kombinációs mezőnknek a zónaneveket kell megjelenítenie az excel legördülő listájában.
  • Az „Írja be a jelszavát” mezőbe be kell illesztenünk egy „szövegdobozt” az eszköztárból.
  • Ehhez a „szövegdobozhoz” meg kell változtatnunk a „Name” tulajdonságot, és „Password_TB” néven kell megváltoztatnunk.

A VBA bejelentkezési űrlap kódolásában a „Combo Box” -ra a „Zone_List_ComboBox” név, a „Text Box” pedig a „Password_TB” névre hivatkozik.

  • Helyezzen be két „Parancsgombot”, és írja be a szöveget: „Bejelentkezés” és „Kijelentkezés”.

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

  • Ugyanazokat a neveket kell használnia, amelyeket a felhasználói űrlapnak, a szövegmezőnek, a parancsgombnak és a kombinációs mezőnek adtunk a kódolásban.
  • Igény szerint megváltoztathatja a zóna nevét és jelszavát.

érdekes cikkek...