VBA-pålogging - Hvordan lage et påloggingsskjema i Excel VBA?

Innholdsfortegnelse

Excel VBA-påloggingsskjema

Det er mulig å opprette et påloggingsbasert brukerformular i excel VBA med alle rullegardinlistene for påloggings-ID, og ​​passordet deles separat. På et eller annet tidspunkt må du ha en ide om å opprette et passordbasert påloggingsskjema, som krever at brukeren velger bruker-ID og skriver inn passordet for å få tilgang til det nødvendige regnearket.

I denne artikkelen vil vi vise deg hvordan du oppretter et brukerformular for innlogging ved hjelp av excel VBA.

Hvordan lage et påloggingsbrukerskjema?

Anta for eksempel at du har regionvis salgsnummer i forskjellige regneark. Vi har 4 forskjellige sonenavn, og hvert soneark har bare relaterte data. Nå er ideen å lage et påloggingsskjema der salgssjefen for "Øst" -sonen bare skal se sonedata for "Øst", ikke andre soner, men som administrator bør du se alle sonearkene.

Først må vi sette inn et arknavn som heter "Admin." I dette administratorarket må vi opprette en "Logg inn ID" og "Passord" legitimasjon.

Jeg har kalt sonen og passordet det samme. Du kan endre dette senere. For sonenavn har jeg opprettet navneområdet som "ZoneList." Denne “Navnebehandleren” vil bli brukt senere i dette påloggingsbrukerskjemaet.

Når brukeren åpner filen, bør de se ett dummyark i bakgrunnen, så lag et nytt ark og gi det navnet "Dummy" -ark. "

Ved hjelp av disse regnearkene oppretter vi et påloggingsbrukerskjema.

Trinn 1: Sett inn brukerskjema

Trykk på alt = "" + F11-tasten for å åpne VBA Editor-vinduet.

  • Fra "Sett inn" -fanen, sett inn "Brukerskjema."
  • Dette vil opprette et nytt brukerskjema som nedenfor.
  • Trykk på F4-tasten for å se Egenskaper-vinduet. Fra dette egenskapsvinduet, endre navnet på brukerskjemaet til “LoginUF”
  • På samme måte kan vi bruke dette egenskapsvinduet til å leke med egenskapene til brukerskjemaet. Jeg har gjort noen av eiendomsendringene. Du kan se i egenskapsvinduet nedenfor for å bruke endringer på egenskapene til brukerskjemaet.
  • Nå ser brukerformen min slik ut.

Trinn 2: Design brukerform

  • Fra verktøykassen til brukerskjemaet, sett inn to etikettbokser og skriv inn teksten, som vist nedenfor.
  • Sett inn "Combo Box" fra verktøykassen.
  • For at denne kombinasjonsboksen skal utmerke seg, må vi hente sonenavnene fra regnearket "Admin Sheet", så fra egenskapsvinduet til "Combo Box", gi først et navn til denne kombinasjonsboksen som "Zone_List_ComboBox" under "Name" -egenskapen .
  • Fra egenskapen "Row Source" i kombinasjonsboksen, skriv inn navnet gitt til sonelisten i "Admin Sheet."
  • Nå skal kombinasjonsboksen vise sonenavn i rullegardinlisten i Excel.
  • For "Angi passord" må vi sette inn en "Tekstboks" fra verktøykassen.
  • For denne "tekstboksen" må vi endre "Name" -egenskapen og endre den som "Password_TB."

Nå i kodingen for VBA-påloggingsskjemaet vil "Combo Box" bli henvist med navnet "Zone_List_ComboBox" og "Text Box" vil bli referert til med navnet "Password_TB."

  • Sett inn to "Kommando-knapper" og skriv inn teksten som "Logg inn" og "Logg ut."

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

  • Du må bruke de samme navnene som vi har gitt til brukerskjemaet, tekstboksen og kommandoknappen og kombinasjonsboksen i kodingen.
  • Du kan endre sonenavn og passord i henhold til ditt ønske.

Interessante artikler...