Sửa lại code cho file Login. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Đỗ Quân

Thành viên chính thức
Tham gia
14/7/18
Bài viết
50
Được thích
4
Xin chào các bác.
Hiện tại em có file login và nó đang gặp chút trục trặc.các bác giúp e với ạ.
1.file của em hiện tại khi thisworkbook đóng thì userform hiện lên và tên đăng nhập và password vẫn còn như lại phải nhập lại thì combobox mới hiện để chọn tháng ( và em mong muốn là khi tên đăng nhập và password còn thì combobox sẽ luôn hiện và nếu tên đăng nhập hoặc password bị xóa đi thì combobox lại ẩn ạ)
2. Form này hiện tại khi Đóng thisworkbook thì userform hiện lên chọn một tháng khác bấm đăng nhập thì cả thisworkbook và userform đều bị thoát và ko vào đc tháng mình chon.( e mong muốn là chỉ khi nào thoát bằng nút EXIT trên userform thì mới thoát toàn bộ bao gồm cả thisworkbook và userform ạ)
Các bác vào tham quan file có gì sửa và bổ sung giúp e với ạ.
Username là 1
Password là 1 ạ
Em xin cảm ơn !
 

File đính kèm

Dear Đỗ Quân,

Anh đọc mấy lần vẫn chưa hiểu hết ý của em về vấn đề ẩn và hiện các controls. Anh có ý kiến là set các control disabled thay vì là hidden.
Ví dụ như khi chiều dài 2 chuỗi user và pass đều lớn hơn 0 thì "Chon thang" control được set enabled=true, ngược lại thì enable=false. Tượng tự với login control.

Thân
 
Upvote 0
Là như này anh ạ.
Đầu tiên sẽ mở file excel => Userform hiện,nhập tên và pass thì combobox hiện ( bthuong combobox đang ẩn) chọn một tháng => Nút bấm login hiện ( bthuong nó đang ẩn).bấm đăng nhập vào tháng đã chọn ở combobox.sau đó quay ra ( close thisworkbook tạm thời) userform hiện tên và password vẫn còn nguyên combobox vẫn hiện chọn 1 tháng khác và đăng nhập lại khi nào thoát bằng bú EXIT trên Userform thì file nới thoát hoàn toàn ko bị treo nữa ạ
Đấy là mong muốn của em.hỳ
Nhưng hiện tại e mới học nên còn nhiều bỡ ngỡ code viết vẫn chưa đc chơn chu.mong bác vào xem có gì sai sửa đổi giúp em với ạ.
Em cảm ơn !!!!!
 
Upvote 0
Dear Đỗ Quân,

1.file của em hiện tại khi thisworkbook đóng thì userform hiện lên và tên đăng nhập và password vẫn còn như lại phải nhập lại thì combobox mới hiện để chọn tháng ( và em mong muốn là khi tên đăng nhập và password còn thì combobox sẽ luôn hiện và nếu tên đăng nhập hoặc password bị xóa đi thì combobox lại ẩn ạ)
Trong sự kiện Activate của UserForm em đặt đoạn code sau:
Mã:
If Len(TextBoxPassword) > 0 And Len(TextBoxUsername) > 0 Then
    Label3.Visible = True
    Cbsheet.Visible = True
Else
    Label3.Visible = False
    Cbsheet.Visible = False
End If

---
2. Form này hiện tại khi Đóng thisworkbook thì userform hiện lên chọn một tháng khác bấm đăng nhập thì cả thisworkbook và userform đều bị thoát và ko vào đc tháng mình chon.( e mong muốn là chỉ khi nào thoát bằng nút EXIT trên userform thì mới thoát toàn bộ bao gồm cả thisworkbook và userform ạ)
Em chỉ muốn thoát toàn bộ khi nhấn nút EXIT trên userform thì trong hàm
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel phải luôn bằng True

Thân
 
Upvote 0
Dạ vâng em cảm ơn anh ạ.
Cảm ơn sự giúp đỡ nhiệt tình của anh ạ.
Bài đã được tự động gộp:

A ơi.e chưa thử lại code của a nhưng trước e cũng e cũng có thử đặt Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = true rồi nhưng khi exit userform song e kích lại vào excel thì e thấy mở luôn sheet .userform ko hiện để đăng nhập anh ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Dear Đỗ Quân,

Biến Cancel luôn bằng True để ThisWorkbook không bị đóng ngoại trừ nhấn nút Exit, đây là vấn đề logic. Em chạy debug từng dòng sẽ hiểu rõ hơn.

Đôi khi Userform bị ẩn lúc này nhưng lúc khác thì không. Trường hợp này em chuyển application khác rồi quay lại Excel hoặc nhấn tổ hợp phím “Alt + Tab” 2 lần.

Thân
 
Upvote 0
Dear Đỗ Quân,


Trong sự kiện Activate của UserForm em đặt đoạn code sau:
Mã:
If Len(TextBoxPassword) > 0 And Len(TextBoxUsername) > 0 Then
    Label3.Visible = True
    Cbsheet.Visible = True
Else
    Label3.Visible = False
    Cbsheet.Visible = False
End If

---

Em chỉ muốn thoát toàn bộ khi nhấn nút EXIT trên userform thì trong hàm
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel phải luôn bằng True

Thân
A ơi.a giải thích lại giúp e với trong Private Sub Workbook_BeforeClose(Cancel As Boolean)
cancel = true
A viết rõ hơn giúp e đc ko.chỗ này e chưa đc rõ lắm ạ.
Em cảm ơn
 
Upvote 0
Dear Đỗ Quân,

File Login của em yêu cầu là chỉ thoát toàn bộ khi nhấn nút Exit trên Login form. Nghĩa là khi nhấn nút dấu "X" trên Excel sẽ không bị close, để làm được điều này thì Cancel=True trong hàm Private Sub Workbook_BeforeClose(Cancel As Boolean) .

Em nên ghi ra giấy tất cả các trường hợp, vẽ sơ đồ thì càng tốt, xem có mâu thuẫn lẫn nhau hay không. Thấy ổn hết rồi hãy viết code.

Thân
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom