ВБА Логин - Како направити образац за пријаву у програму Екцел ВБА?

Образац за пријаву у Екцел ВБА

Могуће је креирати кориснички образац заснован на пријави у екцелу ВБА са свим падајућим списком ИД-а за пријаву, а лозинка ће се делити одвојено. У одређеном тренутку, морате имати идеју о креирању корисничког обрасца за пријаву заснован на лозинци, који захтева да корисник одабере свој кориснички ИД и унесе лозинку за приступ потребном радном листу.

У овом чланку ћемо вам показати како да направите кориснички образац за пријаву користећи екцел ВБА.

Како створити образац за пријаву?

На пример, претпоставимо да на различитим радним листовима имате продајне бројеве по регионима. Имамо 4 различита имена зона, а сваки радни лист зоне има само повезане податке. Сада је идеја створити образац за пријаву где би продајни шеф зоне „Исток“ требало да види само податке о зони „Исток“, не било које друге зоне, али као администратор требали бисте видети све радне листове зона.

Прво, морамо да убацимо назив листа под називом „Администратор“. У овом администраторском листу морамо да направимо акредитиве „Пријави се“ и „Лозинка“.

Зону и лозинку сам назвао истим што можете касније променити. За имена зона креирао сам опсег имена као „Листа зона“. Овај „Управитељ имена“ ће се користити касније на овом корисничком облику за пријаву.

Када корисник отвори датотеку, у позадини би требало да види један лажни лист, па креирајте нови лист и назовите га као „Думми“ Схеет. “

Користећи ове радне листове, креираћемо образац за пријаву.

Корак 1: Уметните кориснички образац

Притисните алт = "" + тастер Ф11 да бисте отворили прозор ВБА Едитор.

  • На картици „Уметни“ уметните „Кориснички образац“.
  • Ово ће створити нови кориснички образац попут доњег.
  • Притисните тастер Ф4 да бисте видели прозор Својства. Из овог прозора својстава промените име корисничког обрасца у „ЛогинУФ“
  • Слично томе, користећи овај прозор својстава, можемо се играти са својствима корисничког обрасца. Направио сам неке имовинске промене. Можете се обратити доњем прозору својстава да бисте применили промене на својства корисничког обрасца.
  • Сада мој кориснички образац изгледа овако.

Корак 2: Дизајн Усерформ

  • Из оквира са алаткама корисничког обрасца убаците два оквира за налепнице и унесите текст, као што је приказано доле.
  • Из оквира са алаткама уметните „Комбиновани оквир“.
  • За овај комбинирани оквир екцел, имена зона морамо добити из радног листа „Админ Схеет“, тако да из прозора својстава „Цомбо Бок-а“ прво дамо име овом комбинираном оквиру као „Зоне_Лист_ЦомбоБок“ под својством „Наме“ .
  • Из својства „Извор реда“ у комбинираном оквиру унесите име дато на листу зона у „Администраторски лист“.
  • Сада би наш комбинирани оквир требао да приказује називе зона на падајућој листи у Екцелу.
  • За „Ентер Иоу Пассворд“ морамо да убацимо „Тект Бок“ из оквира са алаткама.
  • За ово „Оквир за текст“ морамо да променимо својство „Наме“ и променимо га у „Пассворд_ТБ“.

Сада ће се у кодирању за образац за пријаву ВБА, „Цомбо Бок“ означавати именом „Зоне_Лист_ЦомбоБок“, а „Тект Бок“ ће се називати „Пассворд_ТБ“.

  • Уметните два „командна дугмета“ и унесите текст као „Пријави се“ и „Одјави се“.

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

  • Треба да користите иста имена која смо дали корисничком обрасцу, пољу за текст и командном дугмету и комбинираном пољу у кодирању.
  • Име и лозинку зоне можете променити према својој жељи.

Занимљиви Чланци...