Prijava VBA - Kako ustvariti prijavni obrazec v Excelu VBA?

Obrazec za prijavo v Excel VBA

V Excelu VBA je mogoče ustvariti uporabniški obrazec, ki temelji na prijavi, z vsemi spustnimi seznami za prijavo, geslo pa bo dano v skupno rabo. V določenem trenutku ste se morali zamisliti o ustvarjanju uporabniškega obrazca za prijavo na podlagi gesla, ki od uporabnika zahteva, da izbere svoj uporabniški ID in vnese geslo za dostop do zahtevanega delovnega lista.

V tem članku vam bomo pokazali, kako ustvarite uporabniški obrazec za prijavo z uporabo excela VBA.

Kako ustvariti uporabniški obrazec za prijavo?

Recimo, da imate na različnih delovnih listih prodajne številke glede na regijo. Imamo 4 različna imena con in vsak delovni list območja ima samo povezane podatke. Zdaj je ideja ustvariti prijavni obrazec, v katerem bi vodja prodaje območja "vzhod" videl samo podatke območja "vzhod", ne drugih območij, kot skrbnik pa bi morali videti vse delovne liste con.

Najprej moramo vstaviti ime lista z imenom »Skrbnik«. V tem skrbniškem listu moramo ustvariti poverilnici »Prijava v ID« in »Geslo«.

Območje in geslo sem poimenoval enako, kar lahko pozneje spremenite. Za imena območij sem ustvaril obseg imen kot »ZoneList«. Ta »Upravitelj imen« bo uporabljen pozneje v tem uporabniškem obrazcu za prijavo.

Ko uporabnik odpre datoteko, bi moral v ozadju videti en lažni list, zato ustvarite nov list in ga poimenujte kot »Dummy« Sheet. «

S pomočjo teh delovnih listov bomo ustvarili uporabniški obrazec za prijavo.

1. korak: Vstavite uporabniški obrazec

Pritisnite alt = "" + tipko F11, da odprete okno urejevalnika VBA.

  • Na zavihku »Vstavi« vstavite »Uporabniški obrazec«.
  • Tako boste ustvarili nov uporabniški obrazec, kot je spodnji.
  • Pritisnite tipko F4, da se prikaže okno Lastnosti. V tem oknu lastnosti spremenite ime uporabniškega obrazca v “LoginUF”
  • Podobno se lahko v tem oknu lastnosti igramo z lastnostmi uporabniškega obrazca. Naredil sem nekaj lastninskih sprememb. V spodnjem oknu lastnosti lahko uporabite spremembe lastnosti uporabniškega obrazca.
  • Zdaj je moj uporabniški obrazec videti tako.

2. korak: Oblikujte uporabniško obliko

  • Iz orodjarne uporabniškega obrazca vstavite dve polji z nalepkami in vnesite besedilo, kot je prikazano spodaj.
  • V orodjarni vstavite »Combo Box«.
  • Za to kombinirano polje excel moramo imena con dobiti na delovnem listu »Admin Sheet«, zato v oknu z lastnostmi »Combo Box« najprej damo temu kombiniranemu polju ime »Zone_List_ComboBox« pod lastnostjo »Name« .
  • V lastnosti »Row Source« v kombiniranem polju vnesite ime, dodeljeno seznamu con v »Admin Sheet«.
  • Zdaj mora naše kombinirano polje na spustnem seznamu v Excelu prikazati imena con.
  • Za »Enter You Password« moramo v orodno polje vstaviti »Text Box«.
  • Za to »besedilno polje« moramo spremeniti lastnost »Name« in jo spremeniti kot »Password_TB«.

Zdaj bo v kodiranju obrazca za prijavo VBA »Combo Box« označen z imenom »Zone_List_ComboBox«, »Text Box« pa z imenom »Password_TB«.

  • Vstavite dva »ukazna gumba« in vnesite besedilo kot »Prijava« in »Odjava«.

Za ukazni gumb »Prijavi se« spremenite lastnost imena v »Login_CommandButton«, za ukazni gumb »Odjava« pa lastnost imena v »LogOut_CommandButton«.

3. korak: koda

Končali smo z delom za oblikovanje obrazca za prijavo v VBA. Čas je, da napišete kodo, da v Excelu VBA ustvarite uporabniški obrazec, ki temelji na prijavi.

  • Dvokliknite ukazni gumb »Prijavi se«. S tem se bo odprl prazen podproces, kot je spodnji.

V tem postopku moramo napisati kodo o tem, kaj se mora zgoditi, če pritisnemo gumb »Prijava«.

Kodo sem že napisal. Kodo lahko kopirate in prilepite od spodaj v zgornji postopek.

Koda:

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

  • Uporabiti morate enaka imena, ki smo jih dali k uporabniškemu obrazcu, besedilnemu polju, ukaznemu gumbu in kombiniranemu polju v kodiranju.
  • Ime in geslo cone lahko spremenite po svoji želji.

Zanimive Članki...