VBA Girişi - Excel VBA'da Giriş Formu Nasıl Oluşturulur?

İçindekiler

Excel VBA Giriş Formu

Tüm giriş kimliği açılır listesiyle excel VBA'da giriş tabanlı bir kullanıcı formu oluşturmak mümkündür ve şifre ayrı olarak paylaşılacaktır. Bir noktada, kullanıcının kullanıcı kimliğini seçmesini ve gerekli çalışma sayfasına erişmek için parolayı girmesini gerektiren parola tabanlı bir oturum açma kullanıcı formu oluşturma fikrine sahip olmanız gerekir.

Bu yazıda, excel VBA kullanarak nasıl oturum açma kullanıcı formu oluşturacağınızı göstereceğiz.

Oturum Açma Kullanıcı Formu Nasıl Oluşturulur?

Örneğin, farklı çalışma sayfalarında bölge bazında satış numaralarınız olduğunu varsayalım. 4 farklı bölge ismimiz var ve her bölge çalışma sayfasında yalnızca ilgili veriler var. Şimdi buradaki fikir, "Doğu" bölgesi satış başkanının yalnızca "Doğu" bölge verilerini görmesi gerektiği, diğer bölgeleri değil, bir yönetici olarak tüm bölgeler çalışma sayfalarını görmeniz gereken bir giriş formu oluşturmaktır.

Önce, "Yönetici" adlı bir sayfa adı eklememiz gerekiyor. Bu yönetici sayfasında, bir "Oturum Açma Kimliği" ve "Şifre" kimlik bilgileri oluşturmamız gerekiyor.

Bölgeyi ve şifreyi daha sonra değiştirebileceğiniz şekilde adlandırdım. Bölge adları için ad aralığını "ZoneList" olarak oluşturdum. Bu "Ad Yöneticisi" daha sonra bu oturum açma kullanıcı formunda kullanılacaktır.

Kullanıcı dosyayı açtığında, arka planda bir sahte sayfa görmelidir, bu nedenle yeni bir sayfa oluşturun ve bunu "Kukla" Sayfa "olarak adlandırın.

Bu çalışma sayfalarını kullanarak bir giriş kullanıcı formu oluşturacağız.

1. Adım: Kullanıcı Formunu Girin

VBA Düzenleyici penceresini açmak için alt = "" + F11 tuşuna basın.

  • "Ekle" sekmesinden "Kullanıcı Formu" nu ekleyin.
  • Bu, aşağıdaki gibi yeni bir kullanıcı formu oluşturacaktır.
  • Özellikler penceresini görmek için F4 tuşuna basın. Bu özellikler penceresinden, kullanıcı formunun adını "LoginUF" olarak değiştirin.
  • Benzer şekilde, bu özellikler penceresini kullanarak, kullanıcı formunun özellikleriyle oynayabiliriz. Bazı mülk değişikliklerini yaptım. Kullanıcı formunun özelliklerine değişiklikleri uygulamak için aşağıdaki özellikler penceresine başvurabilirsiniz.
  • Şimdi kullanıcı formum böyle görünüyor.

Adım 2: Kullanıcı Formu Tasarlayın

  • Kullanıcı formunun araç kutusundan, iki etiket kutusu yerleştirin ve aşağıda gösterildiği gibi metni girin.
  • Araç kutusundan "Combo Box" ekleyin.
  • Bu birleşik kutu excel için, bölge adlarını "Yönetici Sayfası" çalışma sayfasından almamız gerekir, bu nedenle "Birleşik Giriş Kutusu" nun özellikler penceresinden, önce bu açılan kutuya "Ad" özelliği altında "Zone_List_ComboBox" olarak bir ad verin .
  • Birleşik giriş kutusunun "Satır Kaynağı" özelliğinden, "Yönetici Sayfası" ndaki bölge listesine verilen adı girin.
  • Şimdi açılan kutumuz excel'deki açılır listesinde bölge adlarını göstermelidir.
  • "Parolanızı Girin" için, araç kutusundan bir "Metin Kutusu" eklememiz gerekir.
  • Bu "Metin Kutusu" için "Ad" özelliğini değiştirmemiz ve bunu "Şifre_TB" olarak değiştirmemiz gerekiyor.

Şimdi VBA oturum açma formunun kodlamasında, "Combo Box", "Zone_List_ComboBox" adıyla ve "Metin Kutusu", "Password_TB" adıyla anılacaktır.

  • İki "Komut Düğmesi" ekleyin ve metni "Oturum Aç" ve "Oturumu Kapat" olarak girin.

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

  • Kodlamada kullanıcı formuna, metin kutusuna ve komut düğmesine ve açılan kutuya verdiğimiz isimleri kullanmanız gerekir.
  • Bölge adını ve şifresini isteğinize göre değiştirebilirsiniz.

Ilginç makaleler...