Excel VBA -kirjautumislomake
On mahdollista luoda sisäänkirjautumispohjainen käyttäjälomake Excel VBA: ssa, jossa on kaikki kirjautumistunnukset-pudotusvalikko, ja salasana jaetaan erikseen. Jossain vaiheessa sinulla on oltava ajatus salasanapohjaisen kirjautumislomakkeen luomisesta, joka vaatii käyttäjän valitsemaan käyttäjätunnuksensa ja antamaan salasanan päästäkseen tarvittavaan laskentataulukkoon.
Tässä artikkelissa näytämme sinulle, miten luodaan sisäänkirjautumislomake käyttämällä Excel VBA: ta.

Kuinka luoda kirjautumiskäyttäjälomake?
Oletetaan esimerkiksi, että sinulla on alueittain myyntinumerot eri laskentataulukoissa. Meillä on 4 erilaista vyöhykenimeä, ja jokaisella vyöhykkeen laskentataulukolla on vain siihen liittyvät tiedot. Nyt ajatuksena on luoda kirjautumislomake, jossa itäisen vyöhykkeen myyntipäällikön tulisi nähdä vain itäisen vyöhykkeen tiedot, ei muita vyöhykkeitä, mutta järjestelmänvalvojana sinun pitäisi nähdä kaikki vyöhykkeiden laskentataulukot.
Ensin meidän on lisättävä taulukon nimi nimeltä "Järjestelmänvalvoja". Tässä hallintalomakkeessa meidän on luotava kirjautumistunnus ja salasana.

Olen nimittänyt vyöhykkeen ja salasanan samalla tavalla, että voit muuttaa tämän myöhemmin. Vyöhykenimille olen luonut nimialueeksi ZoneList. Tätä “Nimihallintaa” käytetään myöhemmin tässä sisäänkirjautumislomakkeessa.

Kun käyttäjä avaa tiedoston, hänen pitäisi nähdä yksi nukke-arkki taustalla, joten luo uusi taulukko ja nimeä se nimellä "Dummy" -arkki. "

Näiden laskentataulukoiden avulla luomme sisäänkirjautumislomakkeen.
Vaihe 1: Lisää käyttäjän lomake
Avaa VBA Editor -ikkuna painamalla alt = "" + F11-näppäintä.

- Lisää Lisää-välilehdelle Käyttäjälomake.

- Tämä luo uuden alla olevan kaltaisen käyttäjälomakkeen.

- Paina F4-näppäintä nähdäksesi Ominaisuudet-ikkunan. Muuta tässä ominaisuusikkunassa käyttäjän lomakkeen nimeksi "LoginUF"

- Samoin tämän ominaisuusikkunan avulla voimme pelata käyttäjälomakkeen ominaisuuksilla. Olen tehnyt joitain omaisuuden muutoksia. Voit viitata alla olevaan ominaisuusikkunaan, jos haluat muuttaa muutoksia käyttäjälomakkeen ominaisuuksiin.

- Nyt käyttäjälomakkeeni näyttää tältä.

Vaihe 2: Suunnittele Userform
- Lisää käyttäjätunnuksen työkaluruudusta kaksi tarra-ruutua ja kirjoita teksti alla olevan kuvan mukaisesti.

- Lisää työkaluruudusta "Yhdistelmäruutu".

- Tätä yhdistelmäruutua varten meidän on haettava vyöhykenimet taulukosta "Järjestelmänvalvoja", joten anna "Yhdistelmäruudun" ominaisuusikkunasta ensin nimi tälle yhdistelmäruudulle nimellä "Zone_List_ComboBox" "Nimi" -ominaisuuden alla. .

- Kirjoita yhdistelmäruudun Row Source -ominaisuudesta vyöhykeluettelolle annettu nimi Järjestelmänvalvoja-taulukkoon.

- Yhdistelmäruudun pitäisi nyt näyttää vyöhykenimet avattavassa luettelossaan Excelissä.

- "Syötä salasanasi" -kohdassa meidän on lisättävä "Tekstiruutu" työkalulaatikosta.

- Tätä "Tekstiruutua" varten meidän on vaihdettava "Nimi" -ominaisuus ja vaihdettava se nimellä "Salasana_TB".

Nyt VBA-kirjautumislomakkeen koodauksessa "Yhdistelmäruutuun" viitataan nimellä "Zone_List_ComboBox" ja "Tekstilaatikkoon" viitataan nimellä "Password_TB".
- Aseta kaksi komentopainiketta ja kirjoita teksti "Kirjaudu sisään" ja "Kirjaudu ulos".

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
- Sinun on käytettävä samoja nimiä, jotka olemme antaneet käyttäjälomakkeelle, tekstiruudulle ja komentopainikkeelle sekä yhdistelmäruudulle koodauksessa.
- Voit vaihtaa vyöhykkeen nimen ja salasanan toiveidesi mukaan.