Tạo USERFORM Liên kết với nhiều WorkBook trong Excel ? (1 người xem)

Liên hệ QC

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

vorseraider

Thành viên mới
Tham gia
21/12/10
Bài viết
9
Được thích
0
Xin chào cả nhà, --=0
Mình muốn tạo 1 Userform liên kết với nhiều Workbook khác nhau trong Excel ( Mỗi Workbook gồm nhiều sheet) . Ví dụ như Userform có 5 nút lệnh tương ứng với 5 workbook, Khi người dùng click vào nút lệnh nào thì sẽ làm hiển thị Workbook tương ứng và ẩn Userform đi. Trong mỗi workbook sẽ chèn thêm 1 nút lệnh nữa "BACK" , khi nhấp vào sẽ trở lại màn hình của USerform . Với mỗi thao tác như vậy thì Workbook nào hay Userform hiện ra thì tất cả phần còn lại phải bị ẩn đi . Thanks mọi người nhé !
P/s : Mình mới học nên còn "gà" lắm mong mọi người hướng dẫn chi tiết 1 chút -\\/.
 
Xin chào cả nhà, --=0
Mình muốn tạo 1 Userform liên kết với nhiều Workbook khác nhau trong Excel ( Mỗi Workbook gồm nhiều sheet) . Ví dụ như Userform có 5 nút lệnh tương ứng với 5 workbook, Khi người dùng click vào nút lệnh nào thì sẽ làm hiển thị Workbook tương ứng và ẩn Userform đi. Trong mỗi workbook sẽ chèn thêm 1 nút lệnh nữa "BACK" , khi nhấp vào sẽ trở lại màn hình của USerform . Với mỗi thao tác như vậy thì Workbook nào hay Userform hiện ra thì tất cả phần còn lại phải bị ẩn đi . Thanks mọi người nhé !
P/s : Mình mới học nên còn "gà" lắm mong mọi người hướng dẫn chi tiết 1 chút -\\/.

Bạn coi thử có vừa ý bạn không.
Tuy nhiên, để tiết kiệm thời gian, bạn nên gởi file đính kèm để mọi người dễ trao đổi góp ý.
Buồn ngủ quá có gì bổ sung sau nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn coi thử có vừa ý bạn không.
Tuy nhiên, để tiết kiệm thời gian, bạn nên gởi file đính kèm để mọi người dễ trao đổi góp ý.
Buồn ngủ quá có gì bổ sung sau nhé!
Bài của bạn Thông chưa đáp ứng được yêu cầu của mình
-Thứ nhất là bài của bạn khi mở Mainform lên thì nó mở sẵn luôn cái WB1
-Nut Back của WB1 & 2 khi click vào đều không có tác dụng trở về Mainform
-Mình muốn tất cả nằm trong 1 tập tin Excel duy nhất
Dù sao cũng cảm ơn bạn nhé.
 
Upvote 0
Bài của bạn Thông chưa đáp ứng được yêu cầu của mình
-Thứ nhất là bài của bạn khi mở Mainform lên thì nó mở sẵn luôn cái WB1
-Nut Back của WB1 & 2 khi click vào đều không có tác dụng trở về Mainform
-Mình muốn tất cả nằm trong 1 tập tin Excel duy nhất
Dù sao cũng cảm ơn bạn nhé.
Hôm trước đã xem chủ đề này rồi mà khi bắt tay vào làm thấy chẳng dễ tí nào ---> Làm sao cho code vào trong 1 file duy nhất (file Main.xls) còn các file con khác thì không chứa code
Cuối cùng làm theo nguyên tắc này:
- Mở file Main sẽ ẩn cửa sổ Excel và mở Form điều khiển
- Trên Form điều khiển, nếu nhất nút liên kết đến file con thì sẽ mở file con
- Trên các file con ta vẽ 1 nút nhấn, dùng Hyperlink để trở về file Main
- Khi file Main Active thì tất cả các file con đang mở sẽ được đóng lại
------------------------------------------------------
1> Code trong Thisworkbook
PHP:
Private Sub Workbook_Activate()
  Dim Wb As Workbook
  For Each Wb In Application.Workbooks
    If Wb.Name <> ThisWorkbook.Name Then Wb.Close (True)
  Next
  UserForm1.Show
End Sub
2> Code trong UserForm
PHP:
Private Sub CommandButton1_Click()
  On Error Resume Next
  Application.Visible = True
  Workbooks.Open ThisWorkbook.Path & "\" & CommandButton1.Tag
  End
End Sub
PHP:
Private Sub CommandButton2_Click()
  On Error Resume Next
  Application.Visible = True
  Workbooks.Open ThisWorkbook.Path & "\" & CommandButton2.Tag
  End
End Sub
PHP:
Private Sub CommandButton3_Click()
  On Error Resume Next
  Application.Visible = True
  Workbooks.Open ThisWorkbook.Path & "\" & CommandButton3.Tag
  End
End Sub
PHP:
Private Sub UserForm_Activate()
  Application.CommandBars("Web").Visible = False
  Application.Visible = False
End Sub
PHP:
Private Sub UserForm_Terminate()
  Application.Visible = True
End Sub
Code chạy trên Excel 2003, nếu muốn dùng trên Excel 2007 thì phải sửa lại đôi chút
------------------------------------------------------
Mọi người cải tiến giúp để sao cho khi file con mở thì file Main đóng lại (tôi chưa nghĩ ra được giải pháp)
 

File đính kèm

Upvote 0
Mình chỉ làm được vầy: Khi file con mở thì file main ẩn thôi, được không Bạn?. Bởi vì không được viết code trên file con nên khó quá.
Dạ vâng! Anh làm sáo cũng được mà
Ah... em có ý tưởng thế này:
- Khi mang file Main.xls về máy để xài thì đương nhiên phải sửa lại code (sửa lại đường dẫn của các file con)
- Vậy ta có thể làm thêm 1 form để "cấu hình" chuyện này ---> Có thể là khi ta click phải vào từng CommandButton thì 1 popup xuất hiện cho phép mở form cấu hình, từ đó ta mở cửa sổ Explorer rồi tùy chọn file nào đó, lấy đường dẫn gán vào nút lệnh
- Cũng có thể nhân việc chọn file, ta dùng code vẽ luôn nút Back và gán Hyperlink cho phép link trở về file Main

Ẹc... Ẹc... Khó à nha.. nhưng em nghĩ có thể làm được
 
Upvote 0
Cám ơn anh ndu... rất nhiều về bài viết này !
File của anh làm gần như là hoàn chỉnh rồi chỉ còn 1 lỗi là các work book và main rời nhau thôi .
Nhân tiện em muốn hỏi anh thêm 1 câu nữa . Giả sử như em muốn view code của cái main thì phải làm như thế nào? Vì khi mở main lên thì nó hiên ra cái Userform luôn rồi , không vào sheet để view code được =.= . Thanks again anh have a nice day !
 
Upvote 0
Cám ơn anh ndu... rất nhiều về bài viết này !
File của anh làm gần như là hoàn chỉnh rồi chỉ còn 1 lỗi là các work book và main rời nhau thôi .
Nhân tiện em muốn hỏi anh thêm 1 câu nữa . Giả sử như em muốn view code của cái main thì phải làm như thế nào? Vì khi mở main lên thì nó hiên ra cái Userform luôn rồi , không vào sheet để view code được =.= . Thanks again anh have a nice day !
Bạn bấm dấu X để đóng UserForm là vào được bảng tính, xong ta Alt + F11 sẽ xem được code
 
Upvote 0
ndu... đã viết:
Code chạy trên Excel 2003, nếu muốn dùng trên Excel 2007 thì phải sửa lại đôi chút
Là sửa chổ nào Bạn?

Cám ơn anh ndu... rất nhiều về bài viết này !
File của anh làm gần như là hoàn chỉnh rồi chỉ còn 1 lỗi là các work book và main rời nhau thôi .
Nhân tiện em muốn hỏi anh thêm 1 câu nữa . Giả sử như em muốn view code của cái main thì phải làm như thế nào? Vì khi mở main lên thì nó hiên ra cái Userform luôn rồi , không vào sheet để view code được =.= . Thanks again anh have a nice day !
Khi Form vừa hiện ra bạn bấm Ctrl + Break để xem
 
Lần chỉnh sửa cuối:
Upvote 0
Hôm trước đã xem chủ đề này rồi mà khi bắt tay vào làm thấy chẳng dễ tí nào ---> Làm sao cho code vào trong 1 file duy nhất (file Main.xls) còn các file con khác thì không chứa code
Cuối cùng làm theo nguyên tắc này:
- Mở file Main sẽ ẩn cửa sổ Excel và mở Form điều khiển
- Trên Form điều khiển, nếu nhất nút liên kết đến file con thì sẽ mở file con
- Trên các file con ta vẽ 1 nút nhấn, dùng Hyperlink để trở về file Main
- Khi file Main Active thì tất cả các file con đang mở sẽ được đóng lại
------------------------------------------------------
1> Code trong Thisworkbook
PHP:
Private Sub Workbook_Activate()
  Dim Wb As Workbook
  For Each Wb In Application.Workbooks
    If Wb.Name <> ThisWorkbook.Name Then Wb.Close (True)
  Next
  UserForm1.Show
End Sub
2> Code trong UserForm
PHP:
Private Sub CommandButton1_Click()
  On Error Resume Next
  Application.Visible = True
  Workbooks.Open ThisWorkbook.Path & "\" & CommandButton1.Tag
  End
End Sub
PHP:
Private Sub CommandButton2_Click()
  On Error Resume Next
  Application.Visible = True
  Workbooks.Open ThisWorkbook.Path & "\" & CommandButton2.Tag
  End
End Sub
PHP:
Private Sub CommandButton3_Click()
  On Error Resume Next
  Application.Visible = True
  Workbooks.Open ThisWorkbook.Path & "\" & CommandButton3.Tag
  End
End Sub
PHP:
Private Sub UserForm_Activate()
  Application.CommandBars("Web").Visible = False
  Application.Visible = False
End Sub
PHP:
Private Sub UserForm_Terminate()
  Application.Visible = True
End Sub
Code chạy trên Excel 2003, nếu muốn dùng trên Excel 2007 thì phải sửa lại đôi chút
------------------------------------------------------
Mọi người cải tiến giúp để sao cho khi file con mở thì file Main đóng lại (tôi chưa nghĩ ra được giải pháp)

Cám ơn anh ndu... rất nhiều về bài viết này ! Cho em hỏi thêm, ứng dụng này bắt buộc các tên file không có khoảng cách phải không? Có cách nào các tên file có khoảng cách vẫn thực hiện được không?
 
Upvote 0
Cám ơn anh ndu... rất nhiều về bài viết này ! Cho em hỏi thêm, ứng dụng này bắt buộc các tên file không có khoảng cách phải không? Có cách nào các tên file có khoảng cách vẫn thực hiện được không?
Có khoảng trăng hay không khoảng trắng thì đâu có vấn đề gì chứ. Cứ vào Tag của từng control mà sửa lại tên file cho phù hợp là được rồi

untitled.JPG
 
Upvote 0

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

Back
Top Bottom