VBA-aanmeldingsformulier

Excel VBA-aanmeldingsformulier

Het is mogelijk om een ​​op inloggen gebaseerd gebruikersformulier in Excel VBA te maken met alle inlog-id-vervolgkeuzelijsten en het wachtwoord wordt afzonderlijk gedeeld. Op een bepaald moment moet u een idee hebben gehad om een ​​op een wachtwoord gebaseerd gebruikersformulier voor inloggen te maken, waarbij de gebruiker zijn gebruikers-ID moet kiezen en het wachtwoord moet invoeren om toegang te krijgen tot het vereiste werkblad.

In dit artikel laten we u zien hoe u een gebruikersformulier voor inloggen kunt maken met Excel VBA.

Hoe maak ik een aanmeldingsgebruikersformulier aan?

Stel dat u regionale verkoopcijfers in verschillende werkbladen heeft staan. We hebben 4 verschillende zonenamen en elk zone-werkblad heeft alleen de bijbehorende gegevens. Nu is het de bedoeling om een ​​inlogformulier te maken waarbij de verkoopleider van de zone "Oost" alleen de gegevens van de zone "Oost" zou moeten zien, geen andere zones, maar als admin zou u alle werkbladen van de zones moeten zien.

U kunt deze VBA Login Excel-sjabloon hier downloaden - VBA Login Excel-sjabloon

Eerst moeten we een bladnaam invoeren met de naam "Admin". In dit admin-blad moeten we een "Log in Id" en "Wachtwoord" inloggegevens aanmaken.

Ik heb de zone en het wachtwoord dezelfde naam gegeven, u kunt dit later wijzigen. Voor zonenamen heb ik het naambereik aangemaakt als "ZoneList". Deze “Name Manager” zal later op dit login gebruikersformulier worden gebruikt.

Wanneer de gebruiker het bestand opent, zou hij een dummy-blad op de achtergrond moeten zien, dus maak een nieuw blad en noem het "Dummy" -blad ".

Met behulp van deze werkbladen maken we een aanmeldingsgebruikersformulier.

Stap 1: Gebruikersformulier invoegen

Druk op ALT + F11 toets om het VBA Editor-venster te openen.

  • Voeg vanaf het tabblad “Invoegen” het “Gebruikersformulier” in.

  • Hierdoor wordt een nieuw gebruikersformulier gemaakt zoals het onderstaande.

  • Druk op de F4-toets om het Eigenschappenvenster te zien, verander vanuit dit eigenschappenvenster de naam van het gebruikersformulier in "LoginUF"

  • Op dezelfde manier kunnen we met dit eigenschappenvenster spelen met de eigenschappen van het gebruikersformulier. Ik heb een aantal eigenschapswijzigingen aangebracht. U kunt het onderstaande eigenschappenvenster raadplegen om wijzigingen toe te passen op de eigenschappen van het gebruikersformulier.

  • Nu ziet mijn gebruikersformulier er zo uit.

Stap 2: Ontwerp gebruikersformulier

  • Voeg vanuit de toolbox van het gebruikersformulier twee labelvakken in en voer de tekst in zoals hieronder weergegeven.

  • Voer vanuit de toolbox "Combo Box" in.

  • Voor deze combobox Excel hebben we de zonenamen nodig van het werkblad "Admin Sheet", dus geef vanuit het eigenschappenvenster van de "Combo Box" eerst een naam aan deze combo box als "Zone_List_ComboBox" onder de "Name" eigenschap.

  • Voer vanuit de eigenschap “Rijbron” van de combobox de naam in die aan de zonelijst is gegeven in het “Admin-blad”.

  • Nu zou onze combobox de zonenamen in de vervolgkeuzelijst in Excel moeten weergeven.

  • Voor "Enter You Password" moeten we een "Text Box" uit de toolbox invoegen.

  • Voor dit "Tekstvak" moeten we de eigenschap "Naam" wijzigen en deze wijzigen in "Wachtwoord_TB".

In de codering voor VBA-inlogformulier wordt nu naar "Combo Box" verwezen met de naam "Zone_List_ComboBox" en naar "Text Box" met de naam "Password_TB".

  • Voeg twee "Commandoknoppen" in en voer de tekst in als "Inloggen" en "Uitloggen".

Wijzig voor de opdrachtknop "Log In" de eigenschap name in "Login_CommandButton" en voor de opdrachtknop "Log Out" de eigenschap name naar "LogOut_CommandButton".

Stap 3: Code

We zijn klaar met het ontwerpgedeelte van het VBA-inloggebruikersformulier, het is tijd om de code te schrijven om een ​​op inloggen gebaseerd gebruikersformulier te maken in Excel VBA.

  • Dubbelklik op de "Log In" Command-knop, dit zal een lege subprocedure openen zoals hieronder.

Binnen deze procedure moeten we de code schrijven over wat er moet gebeuren als de knop "Inloggen" wordt ingedrukt.

Ik heb de code al geschreven, je kunt de code van onderaf kopiëren en plakken in de bovenstaande procedure.

Code:

Private Sub Login_CommandButton_Click () If Zone_List_ComboBox.Value = "" Dan MsgBox "Zone mag niet leeg zijn !!!", vbInformation, "Zone naam" Sub afsluiten als als Password_TB.Value = "" Dan kan MsgBox "Wachtwoord niet leeg zijn !! ! ", vbInformation," Wachtwoord "Exit Sub End If If Zone_List_ComboBox.Value =" Admin "en Password_TB.Value =" Admin "Dan laad mij Dim Ws uit als werkblad voor elk Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws Sheets ("Admin"). Selecteer Else Dim ZoneName As String Dim Password As Variant ZoneName = Zone_List_ComboBox.Value Password = Application.WorksheetFunction.VLookup (ZoneName, Sheets ("Admin"). Bereik ("A: B"), 2, 0 ) Als Wachtwoord Password_TB.Value Then MsgBox "Wachtwoord komt niet overeen", vbInformation,"Wrong Password" Exit Sub End If If Password = Password_TB.Value, Verwijder me dan Sheets (ZoneName) .Visible = True Sheets (ZoneName) .Selecteer ActiveSheet.Range ("A1"). Selecteer End If End If End Sub

Dubbelklik op dezelfde manier op de opdrachtknop "Uitloggen" en voer de onderstaande code in.

Code:

 Private Sub LogOut_CommandButton_Click () ThisWorkbook.Save ThisWorkbook.Sluit Einde Sub 

Dubbelklik nu op “Gebruikersformulier” (niet op een van de ingevoegde knoppen) en voeg de onderstaande code toe.

Code:

Private Sub UserForm_QueryClose (Annuleren als geheel getal, CloseMode als geheel getal) 'Voorkomt het gebruik van de knop Sluiten If CloseMode = vbFormControlMenu Then MsgBox "Klikken op de knop Sluiten werkt niet." Cancel = True End If End Sub

  • Dubbelklik nu op het pictogram "ThisWorkbook". Dit wordt geopend onder het lege codeveld.

Voeg nu de onderstaande code toe in dit lege veld.

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

  • 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.