Biểu mẫu đăng nhập VBA trong Excel
Có thể tạo biểu mẫu người dùng dựa trên đăng nhập trong excel VBA với tất cả danh sách thả xuống id đăng nhập và mật khẩu sẽ được chia sẻ riêng. Tại một số thời điểm, bạn phải có ý tưởng tạo biểu mẫu người dùng đăng nhập dựa trên mật khẩu, biểu mẫu này yêu cầu người dùng chọn id người dùng của họ và nhập mật khẩu để truy cập trang tính cần thiết.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách tạo userform đăng nhập bằng excel VBA.

Làm thế nào để tạo một biểu mẫu người dùng đăng nhập?
Ví dụ: giả sử bạn có doanh số bán hàng theo khu vực trong các trang tính khác nhau. Chúng tôi có 4 tên vùng khác nhau và mỗi trang tính vùng chỉ có dữ liệu liên quan. Bây giờ, ý tưởng là tạo một biểu mẫu đăng nhập trong đó người đứng đầu bộ phận bán hàng của khu vực “Đông” sẽ chỉ thấy dữ liệu khu vực “Đông”, không phải bất kỳ khu vực nào khác, nhưng với tư cách là quản trị viên, bạn sẽ thấy tất cả các trang tính của khu vực.
Đầu tiên, chúng ta cần chèn tên trang tính có tên là “Quản trị viên”. Trong trang quản trị này, chúng ta cần tạo thông tin đăng nhập "Id đăng nhập" và "Mật khẩu".

Tôi đã đặt tên vùng và mật khẩu giống nhau, bạn có thể thay đổi điều này sau này. Đối với tên vùng, tôi đã tạo phạm vi tên là “ZoneList.” "Trình quản lý tên" này sẽ được sử dụng sau này trên biểu mẫu người dùng đăng nhập này.

Khi người dùng mở tệp, họ sẽ thấy một trang tính giả trong nền, vì vậy hãy tạo một trang tính mới và đặt tên là Trang tính “Dummy”. ”

Sử dụng các trang tính này, chúng tôi sẽ tạo một biểu mẫu người dùng đăng nhập.
Bước 1: Chèn biểu mẫu người dùng
Nhấn phím alt = "" + F11 để mở cửa sổ VBA Editor.

- Từ tab “Chèn”, hãy chèn “Biểu mẫu người dùng”.

- Thao tác này sẽ tạo một biểu mẫu người dùng mới giống như biểu mẫu bên dưới.

- Nhấn phím F4 để xem cửa sổ Thuộc tính. Từ cửa sổ thuộc tính này, hãy thay đổi tên của biểu mẫu người dùng thành “LoginUF”

- Tương tự, sử dụng cửa sổ thuộc tính này, chúng ta có thể chơi với các thuộc tính của biểu mẫu người dùng. Tôi đã thực hiện một số thay đổi về tài sản. Bạn có thể tham khảo cửa sổ thuộc tính bên dưới để áp dụng các thay đổi cho thuộc tính của biểu mẫu người dùng.

- Bây giờ biểu mẫu người dùng của tôi trông như thế này.

Bước 2: Thiết kế biểu mẫu người dùng
- Từ hộp công cụ của biểu mẫu người dùng, hãy chèn hai hộp nhãn và nhập văn bản, như được hiển thị bên dưới.

- Từ hộp công cụ, chèn “Hộp tổ hợp”.

- Đối với excel hộp tổ hợp này, chúng ta cần lấy tên vùng từ trang tính “Trang tính quản trị”, vì vậy từ cửa sổ thuộc tính của “Hộp tổ hợp”, trước tiên hãy đặt tên cho hộp tổ hợp này là “Zone_List_ComboBox” trong thuộc tính “Tên” .

- Từ thuộc tính “Nguồn hàng” của hộp tổ hợp, hãy nhập tên được đặt cho danh sách khu vực trong “Trang tính quản trị”.

- Bây giờ hộp tổ hợp của chúng ta sẽ hiển thị tên vùng trong danh sách thả xuống của nó trong excel.

- Đối với “Nhập mật khẩu cho bạn”, chúng ta cần chèn một “Hộp văn bản” từ hộp công cụ.

- Đối với “Hộp văn bản” này, chúng tôi cần thay đổi thuộc tính “Tên” và đổi thành “Mật khẩu_TB”.

Bây giờ trong mã hóa cho biểu mẫu đăng nhập VBA, “Hộp tổ hợp” sẽ được gọi bằng tên “Zone_List_ComboBox” và “Hộp văn bản” sẽ được gọi bằng tên “Password_TB.”
- Chèn hai “Nút lệnh” và nhập văn bản là “Đăng nhập” và “Đăng xuất”.

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
- Bạn cần sử dụng cùng những tên mà chúng tôi đã đặt cho biểu mẫu người dùng, hộp văn bản, nút lệnh và hộp tổ hợp trong mã hóa.
- Bạn có thể thay đổi tên vùng và mật khẩu theo ý muốn của mình.