Luôn hiện Userform khi chuyển qua các file excel khác nhau.

Liên hệ QC

gauchoigameonline

Thành viên chính thức
Tham gia
18/3/20
Bài viết
64
Được thích
36
Nghề nghiệp
Tool writer
Mình đang muốn tạo một Form dùng để mở file excel, chọn file excel, chọn các sheet tuy nhiên có gặp phải một vấn đề:

Ví dụ: File excel A là file mình gọi form, nếu sử form để active các sheet trong file A thì không vấn đề gì. Tuy nhiên nếu active sang một file excel B thì form sẽ bị ẩn. Phải chọn lại file A thì mới thấy Userform
=> Mình muốn Userform luôn hiển thị dù chuyển qua các file excel khác nhau.

Nhờ mọi người hỗ trợ tìm giải pháp :D
 

File đính kèm

  • PRO.xlsm
    24.5 KB · Đọc: 13
Giải pháp
Đây là giải pháp của tôi, chia sẻ lại cho bạn nào cần sử dụng :yahoo:

Option Explicit 'API function to enable/disable the Excel Window Private Declare Function FindWindowA Lib "user32" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function EnableWindow Lib "user32" _ (ByVal hwnd As Long, ByVal bEnable As Long) As Long Private Declare Function SetWindowPos Lib "user32" ( _ ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _ ByVal cy As Long, ByVal wFlags As Long) As Long Private Const SWP_NOSIZE = &H1 Private Const SWP_NOMOVE = &H2 Private Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE Private Const HWND_TOPMOST = -1 Private Const...
Mình đang muốn tạo một Form dùng để mở file excel, chọn file excel, chọn các sheet tuy nhiên có gặp phải một vấn đề:

Ví dụ: File excel A là file mình gọi form, nếu sử form để active các sheet trong file A thì không vấn đề gì. Tuy nhiên nếu active sang một file excel B thì form sẽ bị ẩn. Phải chọn lại file A thì mới thấy Userform
=> Mình muốn Userform luôn hiển thị dù chuyển qua các file excel khác nhau.

Nhờ mọi người hỗ trợ tìm giải pháp :D
Thử tìm hiểu và dùng CODE addins đi, có thể điều khiển hiện ẩn userform giữa các file
 
Upvote 0
Nếu mục đích của bạn là muốn tạo form có chức năng xem sheet từ file khác thì bạn tham khảo thêm ở bài của anh Ndu lấy danh sách tên sheet từ file đang đóng:
File cần thiết lập lại Reference vào menu Tools\References va check cac muc:
'-Microsoft ActiveX Data Object X.X Library
'-Microsoft ADO Ext. X.X for DLL and Security
File mình test trên máy mình X.X là 2.8
 

File đính kèm

  • Test PRO.xlsm
    30 KB · Đọc: 13
Upvote 0
Thử tìm hiểu và dùng CODE addins đi, có thể điều khiển hiện ẩn userform giữa các file
Bác có thể nói rõ hơn hay cho hướng cụ thể về ẩn hiện form giữa các file không , chắc là bác có cách rồi ^^
Bài đã được tự động gộp:

Nếu mục đích của bạn là muốn tạo form có chức năng xem sheet từ file khác thì bạn tham khảo thêm ở bài của anh Ndu lấy danh sách tên sheet từ file đang đóng:
File cần thiết lập lại Reference vào menu Tools\References va check cac muc:
'-Microsoft ActiveX Data Object X.X Library
'-Microsoft ADO Ext. X.X for DLL and Security
File mình test trên máy mình X.X là 2.8
Về bài của anh Nu mình có đọc rồi, bài đó rất hay nhưng đấy không phải mục địch của mình. Nếu có cách giải quyết cho đề bài của mình thì bạn chỉ mình với. Cảm ơn bạn
 
Lần chỉnh sửa cuối:
Upvote 0
Mình xin
Mình đang muốn tạo một Form dùng để mở file excel, chọn file excel, chọn các sheet tuy nhiên có gặp phải một vấn đề:

Ví dụ: File excel A là file mình gọi form, nếu sử form để active các sheet trong file A thì không vấn đề gì. Tuy nhiên nếu active sang một file excel B thì form sẽ bị ẩn. Phải chọn lại file A thì mới thấy Userform
=> Mình muốn Userform luôn hiển thị dù chuyển qua các file excel khác nhau.

Nhờ mọi người hỗ trợ tìm giải pháp :D
Mình xin bổ xung thêm: Mình có thử trên bản OFFICE 2010 thì không bị xảy ra vấn đề như đề bài. Form luôn được hiện dù cho mình có chuyển sang file excel khác. (Bản OFFICE 2010 chả hiểu sau tất cả file excel đề chung một cửa sổ, kiểu như là singleton)
Tuy nhiên bản OFFICE 365 tại công ty thì đang bị vấn đề như trên, mình đã thử kiếm giải pháp mà chưa thấy. Điểm khác nhau này nhờ các chuyên gia hỗ trợ giúp.
 
Lần chỉnh sửa cuối:
Upvote 0
Đây là giải pháp của tôi, chia sẻ lại cho bạn nào cần sử dụng :yahoo:

Option Explicit 'API function to enable/disable the Excel Window Private Declare Function FindWindowA Lib "user32" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function EnableWindow Lib "user32" _ (ByVal hwnd As Long, ByVal bEnable As Long) As Long Private Declare Function SetWindowPos Lib "user32" ( _ ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _ ByVal cy As Long, ByVal wFlags As Long) As Long Private Const SWP_NOSIZE = &H1 Private Const SWP_NOMOVE = &H2 Private Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE Private Const HWND_TOPMOST = -1 Private Const HWND_NOTOPMOST = -2 Private mlHWnd As Long Private FormHWnd As Long Private Sub UserForm_Activate() On Error Resume Next mlHWnd = FindWindowA("XLMAIN", Application.Caption) FormHWnd = FindWindowA(vbNullString, Me.Caption) SetWindowPos FormHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Giải pháp
Web KT

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

Back
Top Bottom