VBA-inloggningsformulär

Excel VBA-inloggningsformulär

Det är möjligt att skapa ett inloggningsbaserat användarformulär i excel VBA med alla listrutor för inloggnings-id och lösenordet kommer att delas separat. Vid någon tidpunkt måste du ha en idé om att skapa ett lösenordsbaserat användarformulär för inloggning som kräver att användaren väljer sitt användar-ID och anger lösenordet för att komma åt det önskade kalkylbladet.

I den här artikeln visar vi dig hur du skapar ett användarformulär för inloggning med hjälp av Excel VBA.

Hur skapar jag ett användarformulär för inloggning?

Antag till exempel att du har regionvisa försäljningsnummer i olika kalkylblad. Vi har fyra olika zonnamn och varje zons kalkylblad har endast relaterade data. Nu är idén att skapa ett inloggningsformulär där försäljningschefen för "Öst" -zonen endast ska se "Öst" -zondata, inte några andra zoner utan som administratör ska du se alla zonernas kalkylblad.

Du kan ladda ner denna Excel-mall för VBA-inloggning här - Excel-mall för VBA-inloggning

Först måste vi infoga ett arknamn som heter "Admin". I det här administratörsbladet måste vi skapa autentiseringsuppgifterna "Log in Id" och "Password".

Jag har nämnt zonen och lösenordet samma, du kan ändra detta senare. För zonnamn har jag skapat namnområdet som “ZoneList”. Denna "Namnhanterare" kommer att användas senare i detta användarformulär för inloggning.

När användaren öppnar filen ska de se ett dummyark i bakgrunden, så skapa ett nytt ark och namnge det som "Dummy" Sheet ".

Med hjälp av dessa kalkylblad skapar vi ett användarformulär för inloggning.

Steg 1: Infoga användarformulär

Tryck på ALT + F11 för att öppna fönstret VBA Editor.

  • Från fliken "Infoga" infoga "Användarformulär".

  • Detta skapar ett nytt användarformulär som nedan.

  • Tryck på F4-tangenten för att se Egenskapsfönster, från detta fönster ändrar du namnet på användarformuläret till “LoginUF”

  • På samma sätt kan vi använda detta egenskapsfönster med egenskaperna för användarformuläret. Jag har gjort några av egendomsändringarna. Du kan hänvisa till fönstret nedan för att tillämpa ändringar på egenskaperna för användarformuläret.

  • Nu ser min användarform ut så här.

Steg 2: Utforma användarformulär

  • Infoga två etikettrutor från verktygslådan i användarformuläret och skriv in texten enligt nedan.

  • Från verktygslådan infoga “Combo Box”.

  • För den här kombinationsrutan måste vi hämta zonnamnen från kalkylbladet "Admin Sheet", så från egenskapsfönstret i "Combo Box" först ge ett namn till den här kombinationsrutan som "Zone_List_ComboBox" under "Name" -egenskapen.

  • Från egenskapen "Radkälla" i kombinationsrutan anger du namnet på zonlistan i "Admin Sheet".

  • Nu ska vår kombinationsruta visa zonnamn i rullgardinsmenyn i Excel.

  • För "Ange ditt lösenord" måste vi infoga en "textruta" från verktygslådan.

  • För denna "textruta" måste vi ändra egenskapen "Namn" och ändra den som "Lösenord_TB".

Nu i kodningen för VBA-inloggningsformulär kommer "Combo Box" att hänvisas till med namnet "Zone_List_ComboBox" och "Text Box" kommer att hänvisas till med namnet "Password_TB".

  • Sätt i två "Kommandoknappar" och skriv in texten som "Logga in" och "Logga ut".

För kommandoknappen “Logga in” ändra namnegenskapen till “Login_CommandButton” och för kommandoknappen “Log Out” ändra namnegenskapen till “LogOut_CommandButton”.

Steg 3: Kod

Vi är färdiga med VBA-inloggningsformuläret för användarformulär, det är dags att skriva koden för att skapa ett inloggningsbaserat användarformulär i Excel VBA.

  • Dubbelklicka på kommandoknappen “Logga in” så öppnas tom underprocedur som den nedan.

Inuti denna procedur måste vi skriva koden om vad som ska hända om du trycker på "Logga in" -knappen.

Jag har redan skrivit koden, du kan kopiera och klistra in koden underifrån i ovanstående procedur.

Koda:

Private Sub Login_CommandButton_Click () If Zone_List_ComboBox.Value = "" Then MsgBox "Zone Can not be blank !!!", vbInformation, "Zone Name" Exit Sub End If If Password_TB.Value = "" Then MsgBox "Password kan inte vara tomt !! ! ", vbInformation," Password "Avsluta Sub End Om Om Zone_List_ComboBox.Value =" Admin "och Password_TB.Value =" Admin "Ladda sedan ner mig Dim Ws som arbetsblad för varje Ws i ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws Sheets ("Admin"). Välj Annars dim zonnamn som sträng dim lösenord som variant ZoneName = Zone_List_ComboBox.Value Password = Application.WorksheetFunction.VLookup (ZoneName, Sheets ("Admin"). Range ("A: B"), 2, 0 ) Om lösenord Lösenord_TB.Värde då MsgBox "Lösenordet matchar inte", vbInformation,"Fel lösenord" Avsluta undre ände Om Om lösenord = Lösenord_TB.Värde Ladda sedan av mig ark (ZoneName). Visuellt = True Sheets (ZoneName). Välj ActiveSheet.Range ("A1"). Välj Avsluta om slut om End Sub

Dubbelklicka på kommandoknappen “Logga ut” och ange nedanstående kod.

Koda:

 Private Sub LogOut_CommandButton_Click () ThisWorkbook.Spara ThisWorkbook.Close End Sub 

Dubbelklicka nu på ”Användarformulär” (inte på någon av de insatta knapparna) och lägg till koden nedan.

Koda:

Private Sub UserForm_QueryClose (Avbryt som heltal, CloseMode som heltal) 'Förhindrar användning av knappen Stäng Om CloseMode = vbFormControlMenu Då fungerar MsgBox "Att klicka på knappen Stäng inte fungerar." Avbryt = True End Om End Sub

  • Dubbelklicka nu på ikonen “ThisWorkbook”. Detta öppnas under det tomma kodfältet.

Lägg nu till koden nedan i det tomma fältet.

Koda:

 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

  • You need to use the same names that we have given to the user form, text box, and command button and combo box in the coding.
  • You can change the zone name and password according to your wish.