Conectare VBA - Cum se creează un formular de autentificare în Excel VBA?

Formular de autentificare Excel VBA

Este posibil să creați un formular de utilizator bazat pe autentificare în Excel VBA cu toată lista derulantă de autentificare, iar parola va fi partajată separat. La un moment dat, trebuie să aveți o idee despre crearea unui formular de utilizator de autentificare bazat pe parolă, care cere utilizatorului să își aleagă ID-ul de utilizator și să introducă parola pentru a accesa foaia de lucru necesară.

În acest articol, vă vom arăta cum să creați o formă de utilizator de conectare utilizând excel VBA.

Cum să creați un formular de utilizator de autentificare?

De exemplu, să presupunem că aveți numere de vânzări în funcție de regiune în diferite foi de lucru. Avem 4 nume de zone diferite și fiecare foaie de lucru a zonei are numai datele sale conexe. Acum, ideea este să creați un formular de conectare în care șeful de vânzări al zonei „Est” ar trebui să vadă doar datele zonei „Est”, nu orice alte zone, dar, ca administrator, ar trebui să vedeți toate foile de lucru ale zonelor.

Mai întâi, trebuie să inserăm un nume de foaie numit „Administrator”. În această foaie de administrare, trebuie să creăm acreditări „Identificare autentificare” și „Parolă”.

Am denumit zona și parola la fel, pe care le puteți schimba mai târziu. Pentru numele de zone, am creat intervalul de nume ca „ZoneList”. Acest „Manager de nume” va fi utilizat ulterior pe acest formular de utilizator de conectare.

Când utilizatorul deschide fișierul, ar trebui să vadă o foaie fictivă în fundal, așa că creați o foaie nouă și denumiți-o ca foaie „Dummy”. ”

Folosind aceste foi de lucru, vom crea un formular de utilizator de conectare.

Pasul 1: introduceți formularul de utilizator

Apăsați alt = "" + tasta F11 pentru a deschide fereastra VBA Editor.

  • Din fila „Inserare”, introduceți „Formular de utilizator”.
  • Aceasta va crea un nou formular de utilizator ca cel de mai jos.
  • Apăsați tasta F4 pentru a vedea fereastra Proprietăți. Din această fereastră de proprietăți, schimbați numele formularului de utilizator în „LoginUF”
  • În mod similar, folosind această fereastră de proprietăți, ne putem juca cu proprietățile formularului de utilizator. Am făcut unele modificări ale proprietății. Puteți consulta fereastra de proprietăți de mai jos pentru a aplica modificări proprietăților formularului de utilizator.
  • Acum formularul meu de utilizator arată astfel.

Pasul 2: Proiectați formularul de utilizator

  • Din caseta de instrumente a formularului de utilizator, introduceți două casete de etichete și introduceți textul, așa cum se arată mai jos.
  • Din caseta de instrumente, introduceți „Casetă combinată”.
  • Pentru această casetă combinată excel, trebuie să obținem numele zonelor din foaia de lucru „Foaie de administrare”, deci din fereastra de proprietăți din „Caseta combinată”, mai întâi dați un nume acestei casete combinate ca „Zonă_Listă_ComboBox” sub proprietatea „Nume” .
  • Din proprietatea „Sursă rând” a casetei combinate, introduceți numele dat listei de zone în „Foaia de administrare”.
  • Acum, caseta noastră combinată ar trebui să afișeze numele zonei în lista sa derulantă în Excel.
  • Pentru „Introduceți-vă parola”, trebuie să inserăm o „Casetă de text” din caseta de instrumente.
  • Pentru această „Casetă de text”, trebuie să schimbăm proprietatea „Nume” și să o schimbăm ca „Parolă_TB”.

Acum, în codarea formularului de autentificare VBA, „Caseta combinată” va fi denumită „Zone_List_ComboBox”, iar „Caseta text” va fi denumită „Parola_TB”.

  • Introduceți două „Butoane de comandă” și introduceți textul ca „Conectare” și „Deconectare”.

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

  • Trebuie să utilizați aceleași nume pe care le-am dat formularului de utilizator, caseta de text și butonul de comandă și caseta combo din codificare.
  • Puteți schimba numele zonei și parola în funcție de dorința dvs.

Articole interesante...