VBA prijava - Kako stvoriti obrazac za prijavu u programu Excel VBA?

Obrazac za prijavu u Excel VBA

Moguće je stvoriti korisnički obrazac zasnovan na prijavi u excelu VBA sa svim padajućim popisom za prijavu, a lozinka će se dijeliti odvojeno. U određenom trenutku morate imati ideju o stvaranju korisničkog obrasca za prijavu na temelju lozinke, koji zahtijeva da korisnik odabere svoj korisnički ID i unese lozinku za pristup traženom radnom listu.

U ovom ćemo vam članku pokazati kako stvoriti korisnički obrazac za prijavu pomoću excela VBA.

Kako stvoriti obrazac za prijavu?

Na primjer, pretpostavimo da na različitim radnim listovima imate prodajne brojeve po regijama. Imamo 4 različita imena zona, a svaki radni list zone ima samo povezane podatke. Sada je ideja stvoriti obrazac za prijavu u kojem bi prodajni šef zone "Istok" trebao vidjeti samo podatke o zoni "Istok", ne bilo koje druge zone, ali kao administrator trebali biste vidjeti sve radne listove zona.

Prvo, moramo umetnuti naziv lista pod nazivom "Administrator". U ovom administratorskom listu moramo stvoriti vjerodajnice za "Prijava u" i "Lozinka".

Zonu i lozinku sam nazvao istima što možete kasnije promijeniti. Za nazive zona stvorio sam raspon imena kao „ZoneList“. Ovaj “Name Manager” će se koristiti kasnije na ovom korisničkom obrascu za prijavu.

Kad korisnik otvori datoteku, u pozadini bi trebao vidjeti jedan lažni list, pa izradite novi list i nazovite ga kao „Dummy“ Sheet. "

Pomoću ovih radnih listova stvorit ćemo obrazac za prijavu.

Korak 1: Umetnite korisnički obrazac

Pritisnite alt = "" + tipku F11 da biste otvorili prozor VBA uređivača.

  • Na kartici "Umetni" umetnite "Korisnički obrazac".
  • Ovo će stvoriti novi korisnički obrazac poput dolje navedenog.
  • Pritisnite tipku F4 da biste vidjeli prozor Svojstva. U ovom prozoru svojstava promijenite ime korisničkog obrasca u "LoginUF"
  • Slično tome, pomoću ovog prozora svojstava, možemo se igrati sa svojstvima korisničkog obrasca. Napravio sam neke imovinske promjene. Možete se obratiti donjem prozoru svojstava kako biste primijenili promjene na svojstvima korisničkog obrasca.
  • Sada moj korisnički obrazac izgleda ovako.

Korak 2: Dizajnirajte korisnički obrazac

  • Iz okvira s alatima korisničkog obrasca umetnite dva okvira s naljepnicama i unesite tekst, kao što je prikazano dolje.
  • Iz okvira s alatima umetnite "kombinirani okvir".
  • Za ovaj kombinirani okvir excel, nazive zona moramo dobiti iz radnog lista "Admin Sheet", tako da iz prozora svojstava "kombiniranog okvira" prvo damo naziv ovom kombiniranom okviru kao "Zone_List_ComboBox" pod svojstvom "Name" .
  • Iz svojstva "Izvor reda" kombiniranog okvira unesite ime dano popisu zona u "Administratorski list".
  • Sada bi naš kombinirani okvir trebao prikazati imena zona na padajućem popisu u Excelu.
  • Za "Enter You Password" moramo umetnuti "Text Box" iz okvira s alatima.
  • Za ovaj "okvir za tekst" moramo promijeniti svojstvo "Name" i promijeniti ga kao "Password_TB".

Sada će se u kodiranju za obrazac za prijavu VBA "Combo Box" označavati imenom "Zone_List_ComboBox", a "Text Box" će se nazivati ​​"Password_TB".

  • Umetnite dva "naredbena gumba" i unesite tekst kao "Prijava" i "Odjava".

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

  • Morate koristiti ista imena koja smo dali korisničkom obrascu, tekstualnom okviru, naredbenom gumbu i kombiniranom okviru u kodiranju.
  • Ime i lozinku zone možete promijeniti prema svojoj želji.

Zanimljivi članci...