Ẩn cửa sổ Excel khi load Form (4 người xem)

Liên hệ QC

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

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,959
Nhờ các cao thủ tư vấn giúp!
- Giả sử tôi có 1 UserForm, liệu có code nào có khả năng làm cho cửa sổ Excel ẩn hoàn toàn khi load Form không?
Xin nói thêm:
- ẨN ở đây không phải dạng Windows(...).Visible = False mà là ẨN MẤT TÂM TÍCH, chỉ còn nhìn thấyUserForm trôi trên màn hình Desktop mà thôi
 
Bạn thử cái này xem

Mã:
Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn thử cái này xem

Mã:
Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show
End Sub
Cảm ơn anh! Tạm ổn rồi (không ngờ đơn giản thế)
Chỉ còn 1 khuyết điểm nhỏ: Vẫn còn thấy tiêu để của cửa sổ trên Taskbar
Có cách gì tối ưu hơn nữa không anh?
 
Upvote 0
Việc xóa tiêu đề trên Tastbar hình như được nhưng mình không nhớ là đọc ở đâu.
 
Upvote 0
Bạn kiểm tra file mình ví dụ xem, trên Tastbar cũng không có gì?
 
Upvote 0
Bạn kiểm tra file mình ví dụ xem, trên Tastbar cũng không có gì?
Lạ nhỉ? Với ví dụ anh đưa lên thì OK, nhưng em sửa code lại thanh:
PHP:
Private Sub Workbook_Open()
  Application.Visible = False
  MsgBox "AN"
  Application.Visible = True
  MsgBox "HIEN"
End Sub
Thì vẫn còn nhìn thấy tiêu đề trên Taskbar
Không biết MsgBoxUserForm có điểm gì khác nhau mà "phản ứng" của chúng lại khác nhau thế nhỉ?
 
Upvote 0
Mình nghĩ ndu dùng msgboxuni() mà Tuan VNUNI đưa hôm qua có thể được vì nó có thể hiển thị trên nền VBA, và thoát ly Application
Bạn lưu ý khi thoát Form phải show hay quit application. Nếu không nó vẫn nằm ẩn đấy.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh! Tạm ổn rồi (không ngờ đơn giản thế)
Chỉ còn 1 khuyết điểm nhỏ: Vẫn còn thấy tiêu để của cửa sổ trên Taskbar
Có cách gì tối ưu hơn nữa không anh?
Thì anh cho thêm cái ni vào:
Windows(ThisWorkbook.Name).Visible = False​
Hì, nhưng mà, coi chừng phải dùng đến Ctrl+Alt+Del để thoát Excel đấy nha, nếu dùng cái này:
Application.Visible = False​
Rồi sau khi test xong, thấy ngon quá, đóng luôn cái Form lại (và trước đó thì đã đóng luôn cửa sổ VBA) mà quên mất cài cái lệnh khi đóng Form thì mở Excel lên...
 
Lần chỉnh sửa cuối:
Upvote 0
Hì, nhưng mà, coi chừng phải dùng đến Ctrl+Alt+Del để thoát Excel đấy nha, nếu dùng cái này:
Application.Visible = False​
Rồi sau khi test xong, thấy ngon quá, đóng luôn cái Form lại (và trước đó thì đã đóng luôn cửa sổ VBA) mà quên mất cài cái lệnh khi đóng Form thì mở Excel lên...
Đâu thể nào!
Mỗi khi test, tôi luôn luôn có phương án dự phòng!
Chẳng hạn, có 1 đoạn code dùng để ẩn cửa số VBE (cấm luôn Alt + F11 và Alt + F8) mà test lơ tơ mơ thì có nước.. húp cháo
Tình huống này dân IT gọi là: Khóa cửa và liệng chìa vào trong nhà
Ẹc.. Ẹc...
 
Upvote 0
Đâu thể nào!
Mỗi khi test, tôi luôn luôn có phương án dự phòng!
Chẳng hạn, có 1 đoạn code dùng để ẩn cửa số VBE (cấm luôn Alt + F11 và Alt + F8) mà test lơ tơ mơ thì có nước.. húp cháo
Tình huống này dân IT gọi là: Khóa cửa và liệng chìa vào trong nhà
Ẹc.. Ẹc...
Ủa... thì em nói là coi chừng thôi mà! Đâu phải ai cũng nhớ là trước khi dập cái ổ khóa thì phải có cái chìa khóa trong tay? Khối người ra khỏi nhà dập ổ khóa xong mới nhớ là cái chìa khóa còn nằm trong cái túi quần treo ở trong phòng ngủ í chứ... Mà loại người như thế này, e là chiếm hết 50% nhân loại đấy anh à...
 
Upvote 0
Lạ nhỉ? Với ví dụ anh đưa lên thì OK, nhưng em sửa code lại thanh:
PHP:
Private Sub Workbook_Open()
  Application.Visible = False
  MsgBox "AN"
  Application.Visible = True
  MsgBox "HIEN"
End Sub
Thì vẫn còn nhìn thấy tiêu đề trên Taskbar
Không biết MsgBoxUserForm có điểm gì khác nhau mà "phản ứng" của chúng lại khác nhau thế nhỉ?
Tôi nghĩ không phải do MsgBox mà do cái event nữa, vì nếu msgbox trên form đâu có xảy ra hiện tượng này.
 
Upvote 0
MsgBox trên Form là sao? Tôi chưa hiểu!
Tức là khi ta hiện 1 form lên đồng thời ẩn excel đi, rồi trên form đó ta dùng msgbox vô tư mà excel đâu có hiện lên được. Còn việc dùng msgbox tại event On_Open của workbook thì tôi thấy ít khi dùng, có lẽ chỉ để thử nghiệm thôi.
 
Upvote 0
Mình cho rằng khi gọi lệnh msgbox từ worksheet nên Appl. không ẩn hoàn toàn mà còn chờ sử lý kết quả do hàm hay lệnh msgbox trả về. Do vậy khi thưch hiện:
Cụ thể:
Application.Visible = False
Thì appl. đã ẩn nhưng ta dựng nó dậy để gọi
MsgBox
"AN"
Khi này appl. không ẩn hoàn toàn. Nhưng khi thoát msgbox mà không có dong lệnh sau
Application.Visible = True
Đố bạn nhìn thấy appl đâu? Nó đã ẩn hoàn toàn, nhưng file vẫn mở.
Vậy bạn Rollover nói do ảnh hưởng của event là đúng.
 
Upvote 0
Bạn thử cái này xem

Mã:
Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show
End Sub
Cho mình hỏi thêm, nếu dùng Form nhập liệu vào file Excell đó, mà cửa sổ Excell đó đã mất hút, thì dữ liệu có ghi được vào file không. Và khi muốn hiện trở lại excell thì sao.
 
Upvote 0
Cho mình hỏi thêm, nếu dùng Form nhập liệu vào file Excell đó, mà cửa sổ Excell đó đã mất hút, thì dữ liệu có ghi được vào file không. Và khi muốn hiện trở lại excell thì sao.

Khi ẩn không ảnh hưởng đến bảng tính, bảng tính đang mở mà.
Muốn mở lại bạn chạy code
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Khi ẩn không ảnh hưởng đến bảng tính, bảng tính đang mở mà.
Muốn mở lại bạn chạy code
Chào bạn!
file của bạn test thì ok.
Tuy nhiên khi mình đã mở 1 file exel nào đó trước (không muốn ẩn) rồi mở file bạn thì nó ẩn cả hai cái luôn. Nhờ bác xử lý giúp
 
Upvote 0
cái này phải làm thế nào nhỉ các bác ơi mình cũng đang quan tâm
 
Upvote 0
Vấn đề này, không biết Thầy Ndu và Hai Lúa Miền Tây có hướng giải quyết chưa nhỉ?????
 
Upvote 0
Web KT

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

Back
Top Bottom