Prihlasovací formulár pre Excel
Je možné vytvoriť používateľský formulár založený na prihlasovaní v programe Excel VBA so všetkým rozbaľovacím zoznamom prihlasovacích ID a heslo sa bude zdieľať osobitne. V určitom okamihu ste určite dostali predstavu o vytvorení prihlasovacieho formulára založeného na hesle, ktorý vyžaduje, aby si užívateľ vybral svoje ID užívateľa a zadal heslo pre prístup k požadovanému hárku.
V tomto článku si ukážeme, ako vytvoriť prihlasovací formulár pomocou programu Excel VBA.

Ako vytvoriť prihlasovací formulár?
Predpokladajme napríklad, že máte regionálne čísla predaja v rôznych pracovných hárkoch. Máme 4 rôzne názvy zón a každý pracovný hárok zóny má iba súvisiace údaje. Teraz sa navrhuje vytvoriť prihlasovací formulár, kde by vedúca predajnej zóny „Východ“ mala vidieť iba údaje o zóne „Východ“, nie iné zóny, ale ako správca by ste mali vidieť všetky pracovné listy zón.
Najprv musíme vložiť názov hárku s názvom „Správca“. V tomto hárku správ musíme vytvoriť poverenia „Prihlásiť sa ako ID“ a „Heslo“.

Zónu a heslo som pomenoval rovnako, môžete to neskôr zmeniť. Pre názvy zón som vytvoril rozsah názvov ako „ZoneList“. Tento „Správca mien“ bude použitý neskôr v tomto prihlasovacom formulári.

Keď používateľ otvorí súbor, mal by vidieť na pozadí jeden fiktívny hárok, preto vytvorte nový hárok a pomenujte ho ako „fiktívny“ hárok. “

Pomocou týchto pracovných hárkov vytvoríme prihlasovací formulár používateľa.
Krok 1: Vložte formulár používateľa
Stlačením klávesu alt = "" + F11 otvorte okno editora VBA.

- Na karte „Vložiť“ vložte „formulár používateľa“.

- Týmto sa vytvorí nový užívateľský formulár, ako je tento.

- Stlačením klávesu F4 zobrazíte okno Vlastnosti. V tomto okne vlastností zmeňte názov používateľského formulára na „LoginUF“.

- Podobne pomocou tohto okna vlastností môžeme hrať s vlastnosťami užívateľského formulára. Urobil som niektoré z majetkových zmien. Ak chcete použiť zmeny vo vlastnostiach užívateľského formulára, môžete sa pozrieť do nasledujúceho okna vlastností.

- Teraz vyzerá môj používateľský formulár takto.

Krok 2: Navrhnite Userform
- Na paneli nástrojov formulára používateľa vložte dve polia so štítkami a zadajte text, ako je to znázornené nižšie.

- Z panela nástrojov vložte „Kombinovanú schránku“.

- Pre toto vynikajúce pole so zoznamom musíme získať názvy zón z pracovného hárka „Správcovský hárok“, takže v okne vlastností „rozbaľovacieho poľa“ najskôr pomenujte toto rozbaľovacie pole ako „Zone_List_ComboBox“ v časti „Názov“. .

- Z vlastnosti kombinovaného poľa „Zdroj riadkov“ zadajte názov uvedený v zozname zón v „Správcovskom hárku“.

- Teraz by malo naše kombinované pole zobrazovať názvy zón vo svojom rozbaľovacom zozname v programe Excel.

- Pri zadávaní hesla „Enter You Password“ musíme do panela nástrojov vložiť „textové pole“.

- V prípade tohto „textového poľa“ musíme zmeniť vlastnosť „Názov“ a zmeniť ju na „Heslo_TB“.

Teraz v kódovaní pre prihlasovací formulár VBA bude „Combo Box“ označený názvom „Zone_List_ComboBox“ a „Textové pole“ bude označený názvom „Password_TB“.
- Vložte dve „príkazové tlačidlá“ a zadajte text ako „Prihlásiť sa“ a „Odhlásiť sa“.

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
- V kódovaní musíte použiť rovnaké mená, aké sme dali používateľskému formuláru, textovému poľu a príkazovému tlačidlu a rozbaľovaciemu poľu.
- Názov zóny a heslo môžete zmeniť podľa vášho želania.