VBA sisselogimine | Kuidas Exceli VBA-s sisselogimisvormi luua?

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 muid tsoone, kuid administraatorina peaksite nägema kõiki tsoonide töölehti.

Selle VBA sisselogimise Exceli malli saate alla laadida siit - VBA sisselogimise Exceli mall

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.

  • Vahekaardilt „Lisa“ sisestage „Kasutaja vorm“.

  • See loob uue kasutajavormi nagu allpool.

  • Atribuutide akna kuvamiseks vajutage klahvi F4, muutke selles atribuutide aknas kasutajavormi nimeks “LoginUF”

  • Samamoodi saab seda atribuutide akent kasutades mängida ka kasutajavormi omadustega. Olen mõned atribuudimuudatused 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 kombokasti exceli jaoks peame hankima tsoonide nimed töölehelt „Admin Sheet”, nii et „Kombineeritud kasti” omaduste aknast andke sellele liitkastile kõigepealt nimi „Zone_List_ComboBox” atribuudi „Name” all.

  • Sisestage liitkasti atribuudil „Row Source” reavaliku tsooniloendile antud nimi.

  • Nüüd peaks meie liitkast Exceli rippmenüüs näitama tsoonide nimesid.

  • „Sisestage parool” peate sisestama tööriistakastist 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 "Text Boxile" nimega "Password_TB".

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

Nupu „Logi sisse” jaoks muutke nime atribuudiks „Login_CommandButton” ja käsunupu „Log Out” korral muutke nime omaduseks “LogOut_CommandButton”.

3. samm: kood

Oleme lõpetanud VBA sisselogimise kasutajavormi kujunduse osa, on aeg kirjutada kood Exceli VBA-s sisselogimispõhise kasutajavormi loomiseks.

  • 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 altpoolt kopeerida ja kleepida.

Kood:

Private Sub Login_CommandButton_Click () Kui Zone_List_ComboBox.Value = "" Siis ei saa MsgBox "tsoon olla tühi !!!", vbInformation, "Zone Name" Exit Sub End, kui Password_TB.Value = "" Siis ei saa MsgBox "parooli tühi olla !! ! ", vbInformation," Password "Exit Sub End If If Zone_List_ComboBox.Value =" Administraator "Ja Password_TB.Value =" Administraator "Seejärel laadige mulle Dim Ws töölehtena alla iga W-le ActiveWorkbookis. Töölehed Ws.Visible = xlSheetVisible Next Ws Sheets ("Administraator"). Valige muu Dim ZoneName stringina Dim Parool Variantina ZoneName = Zone_List_ComboBox.Value Password = Application.WorksheetFunction.VLookup (ZoneName, Sheets ("Administraator"). Range ("A: B"), 2, 0 ) Kui Password Password_TB.Value, siis MsgBox "Parool ei sobi", vbInformation,"Vale parool" Exit Sub End Kui Kui parool = Password_TB.Value, siis laadige minu lehed (ZoneName) alla. Visis = True Sheets (ZoneName). Valige ActiveSheet.Range ("A1"). Valige End, kui End, kui End Sub

Samamoodi topeltklõpsake käsul „Logi välja” ja sisestage allolev kood.

Kood:

 Privaatne alamlogi väljumine_komandoButton_Click () See tööraamat. Salvestage see tööraamat. Sule lõpp-alam 

Nüüd topeltklõpsake valikul „Kasutaja vorm” (mitte ühelgi sisestatud nupul) ja lisage allolev kood.

Kood:

Private Sub UserForm_QueryClose (Tühista täisarvuna, Sulge režiim täisarvuna) 'Takistab nupu Sule kasutamist, kui CloseMode = vbFormControlMenu Siis MsgBox "Nupule Sule klõpsamine ei toimi." Tühista = True End If End Sub

  • Nüüd topeltklõpsake ikooni “ThisWorkbook”. See avaneb tühja koodivälja all.

Nüüd lisage sellele tühjale väljale allolev kood.

Kood:

 Privaatne alam töövihik_Open () Dim Ws töölehena Application.DisplayAlerts = False Application.ScreenUpdating = Vale ActiveWorkbooki iga W-i kohta. Töölehed Kui Ws.Name "Dummy" Siis Ws.Visible = xlSheetVeryHidden End Kui järgmine WS LogInUF.Show End Sub 

  • Oleme valmis vormi kodeeriva osaga. Salvestage töövihik töövihikuna „Macro-Enabled” ja avage töövihik uuesti. Töövihiku uuesti avamisel peaksime nägema allolevat akent.

  • Sellest kasutajavormist peame valima vastava tsooni nime ja sisestama seotud parooli. Näiteks valin rippmenüüst tsooni „Ida” ja sisestan parooli.

  • Kui klõpsan nupul „Logi sisse”, näeme ainult „Ida” tsooni töölehte.

Samamoodi pääseme administraatoriga sisse logides kõigile töölehtedele.

Nii saame luua sisselogimispõhise parooliga kaitstud töölehe juurdepääsu.

Asjad, mida meeles pidada

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

$config[zx-auto] not found$config[zx-overlay] not found