VBA sisselogimine - Kuidas Exceli VBA-s sisselogimisvormi luua?

Lang L: none (table-of-contents)

Exceli VBA sisselogimisvorm

Exceli VBA-s on võimalik luua sisselogimispõhine kasutajavorm koos kõigi sisselogimise ID ripploenditega ja parooli jagatakse eraldi. Mingil ajahetkel peate olema saanud idee luua paroolipõhine sisselogimise kasutajavorm, mis nõuab, et kasutaja valiks vajaliku töölehe juurde oma kasutajatunnuse ja sisestaks parooli.

Selles artiklis me näitame teile, kuidas Exceli VBA abil sisselogimisvormi luua.

Kuidas luua sisselogimise kasutaja vorm?

Oletame näiteks, et teil on erinevates töölehtedes piirkonniti müüginumbrid. Meil on 4 erinevat tsooninime ja igal tsooni töölehel on ainult seotud andmed. Nüüd on mõte luua sisselogimisvorm, kus „Ida” tsooni müügipea peaks nägema ainult „Ida” tsooni andmeid, mitte ühtegi teist tsooni, kuid administraatorina peaksite nägema kõiki tsoonide töölehti.

Esiteks peame sisestama lehe nime nimega "Administraator". Selles administraatori lehel peame looma mandaadid "Logi sisse ID" ja "Parool".

Olen nimetanud tsooni ja parooli samaks, mida saate hiljem muuta. Tsooninimede jaoks olen loonud nimevahemiku nimega „ZoneList”. Seda „nimehaldurit” kasutatakse hiljem sellel sisselogimise kasutajavormil.

Kui kasutaja faili avab, peaks ta taustal nägema ühte näivlehte, nii et looge uus leht ja nimetage see nimeks "Dummy" Sheet. "

Nende töölehtede abil loome sisselogimise kasutajavormi.

1. samm: sisestage kasutajavorm

VBA redaktori akna avamiseks vajutage klahvi alt = "" + F11.

  • Vahekaardil „Sisesta” sisestage „Kasutaja vorm”.
  • See loob uue kasutajavormi nagu allpool.
  • Atribuutide akna kuvamiseks vajutage klahvi F4. Selles atribuutide aknas muutke kasutajavormi nimeks “LoginUF”
  • Samamoodi saame seda atribuutide akent kasutades mängida kasutajavormi omadustega. Olen mõned varalised muudatused teinud. Kasutajavormi omaduste muudatuste rakendamiseks saate viidata allpool olevale atribuutide aknale.
  • Nüüd näeb minu kasutajavorm välja selline.

2. samm: kujundage kasutajavorm

  • Sisestage kasutajavormi tööriistakastist kaks sildikasti ja sisestage tekst, nagu allpool näidatud.
  • Sisestage tööriistakastist „Combo Box”.
  • Selle liitkasti exceli jaoks peame hankima tsoonide nimed töölehelt „Administraatori leht”, nii et „Kombineeritud kasti” atribuutide aknast andke sellele liitkastile kõigepealt nimi „Zone_List_ComboBox” atribuudi „Nimi” all .
  • Sisestage liitkasti atribuudil „Row Source” reavaliku tsooniloendile antud nimi.
  • Nüüd peaks meie liitkast Exceli rippmenüüs näitama tsoonide nimesid.
  • „Sisestage parool” jaoks peame tööriistakastist lisama tekstikasti.
  • Selle tekstikasti jaoks peame muutma atribuudi „Nimi” ja muutma seda kui „Password_TB”.

Nüüd on VBA sisselogimisvormi kodeerimisel viidatud „Combo Boxile” nimega „Zone_List_ComboBox” ja tekstikastile nimega „Password_TB”.

  • Sisestage kaks „käsunuppu” ja sisestage tekst „Logi sisse” ja „Logi välja”.

Muutke käsunupu „Logi sisse“ nimel atribuudiks „Login_CommandButton” ja käsunupu „Log Out” korral muutke nime atribuudiks „LogOut_CommandButton”.

3. samm: kood

Oleme valmis VBA sisselogimise kasutajavormi kujunduse osaga. On aeg kirjutada kood, et luua Exceli VBA-s sisselogimispõhine kasutajavorm.

  • Topeltklõpsake käsul „Logi sisse“. See avab tühja alamprotseduuri nagu allpool.

Selle protseduuri sees peame kirjutama koodi selle kohta, mis peaks juhtuma, kui vajutatakse nuppu “Logi sisse”.

Olen koodi juba kirjutanud. Võite koodi ülaltoodud protseduuri alt kopeerida ja kleepida.

Kood:

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

  • Peate kodeerimisel kasutama samu nimesid, mis oleme andnud kasutajavormile, tekstiväljale ja käsunupule ning liitkastile.
  • Tsooni nime ja parooli saate vastavalt oma soovile muuta.

Huvitavad Artiklid...