Sử dụng VBA để tạo menu

Liên hệ QC

andyminh

Thành viên chính thức
Tham gia
3/8/12
Bài viết
65
Được thích
4
Hi GPE

Do file của mình có rất nhiều sheet, di chuyển rất khó, nên mình muốn làm menu liên kết với các sheet trong file excel (, khi click vào liên kết ở sheet menu thì sheet đc liên kết sẽ mở ra. (Ở sheet đc liên kết có nút (có thể ghi là menu) khi click sẽ đóng sheet đang mở này để quay lại menu chính.

Mình có tham khảo một file tạo menu trên GPE = VBA, nhưng do không hiểu lắm về VBA nên thực hiện không được.
GPE có ai rành cái này, hướng dẫn cách code dùm mình với. Thanks

Đính kèm (File TAOMOI là file mình cần làm), file tao sheet menu là file mẫu, mình thấy ở trên GPE.
 

File đính kèm

  • tao sheet Menu.xls
    282 KB · Đọc: 19
  • TAOMOI.xlsm
    75.4 KB · Đọc: 16
Hi GPE

Do file của mình có rất nhiều sheet, di chuyển rất khó, nên mình muốn làm menu liên kết với các sheet trong file excel (, khi click vào liên kết ở sheet menu thì sheet đc liên kết sẽ mở ra. (Ở sheet đc liên kết có nút (có thể ghi là menu) khi click sẽ đóng sheet đang mở này để quay lại menu chính.

Mình có tham khảo một file tạo menu trên GPE = VBA, nhưng do không hiểu lắm về VBA nên thực hiện không được.
GPE có ai rành cái này, hướng dẫn cách code dùm mình với. Thanks

Đính kèm (File TAOMOI là file mình cần làm), file tao sheet menu là file mẫu, mình thấy ở trên GPE.
Bạn thử:
PHP:
Sub Sheet_Menu()
    Sheets("MENU").Select
End Sub
Sub DATA_abc()
    Sheets("DATA").Select
End Sub
Sub Nhap_Lieu()
    Sheets("NHAPLIEU").Select
End Sub
Sub Bieu_Do()
    Sheets("BIEUDO").Select
End Sub
Sub TRUY_XUAT()
    Sheets("TRUYXUAT").Select
End Sub
Sub BAO_CAO()
    Sheets("BAOCAO").Select
End Sub
Bạn tham khảo và biến tấu cho phù hợp với bài toán của bạn nhé.
 

File đính kèm

  • LINK SHEET 22.8.xls
    243.5 KB · Đọc: 19
Hi GPE

Do file của mình có rất nhiều sheet, di chuyển rất khó, nên mình muốn làm menu liên kết với các sheet trong file excel (, khi click vào liên kết ở sheet menu thì sheet đc liên kết sẽ mở ra. (Ở sheet đc liên kết có nút (có thể ghi là menu) khi click sẽ đóng sheet đang mở này để quay lại menu chính.



Mình có tham khảo một file tạo menu trên GPE = VBA, nhưng do không hiểu lắm về VBA nên thực hiện không được.
GPE có ai rành cái này, hướng dẫn cách code dùm mình với. Thanks

Đính kèm (File TAOMOI là file mình cần làm), file tao sheet menu là file mẫu, mình thấy ở trên GPE.

Bạn tham khảo cách làm ở Topic "Hỏi về cách liên kết các Sheet trong Excel", Link sau:

http://www.giaiphapexcel.com/forum/showthread.php?14905-Hỏi-về-cách-liên-kết-các-Sheet-trong-Excel
 
Thanks các bạn GPE đã hướng dẫn ở trên.

Ý mình ở đây là ngoài tạo liên kết đến các sheet như bạn Phulien1902 ra. Thì khi mở file chỉ hiển Sheet Menu, tất cả các sheet còn lại điều ẩn, khi cần mở sheet nào thì click vào liên kết ở sheet Menu và mở ra thêm 1 sheet mới (Sheet liên kết) kiểu giống file tạo sheet menu mà mình đính kèm ở trên.

Thanks.
 
Thanks các bạn GPE đã hướng dẫn ở trên.

Ý mình ở đây là ngoài tạo liên kết đến các sheet như bạn Phulien1902 ra. Thì khi mở file chỉ hiển Sheet Menu, tất cả các sheet còn lại điều ẩn, khi cần mở sheet nào thì click vào liên kết ở sheet Menu và mở ra thêm 1 sheet mới (Sheet liên kết) kiểu giống file tạo sheet menu mà mình đính kèm ở trên.

Thanks.
Thì bạn mở file đó ra, coi code là đc mà. Có gì đâu nhỉ?
 
Thì bạn mở file đó ra, coi code là đc mà. Có gì đâu nhỉ?
Mình cũng đã code rồi, nhưng nó không chạy đc như file đó. Ở đây là mình mới tập mày mò về VBA nên ngoài việc xem code ra, mình không hiểu các bước mà chủ của file TAO MENU SHEET đã thực hiện để đc file như vậy. Nên mình mới hỏi GPE xem thử, có thể hướng dẫn cách làm cho file của mình hay không ?
 
Mình cũng đã code rồi, nhưng nó không chạy đc như file đó. Ở đây là mình mới tập mày mò về VBA nên ngoài việc xem code ra, mình không hiểu các bước mà chủ của file TAO MENU SHEET đã thực hiện để đc file như vậy. Nên mình mới hỏi GPE xem thử, có thể hướng dẫn cách làm cho file của mình hay không ?
Vấn đề của bạn ở đây là:
1. Đầu tiên phải tạo hyperlink cho các ô, button ( cái này bạn làm thử công đơn giản)
2. Nếu bạn làm giống file mẫu thì tên của các ô hyperlink phả giống với tên sheet. vd: I8 phải là NHAPLIEU ( hoặc bạn đổi tên sheet trùng với I8 "NHẬP LIỆU")

code thì bạn bê nguyên của file mẫu là đc. Bạn thử xem.
 
Thanks các bạn GPE đã hướng dẫn ở trên.

Ý mình ở đây là ngoài tạo liên kết đến các sheet như bạn Phulien1902 ra. Thì khi mở file chỉ hiển Sheet Menu, tất cả các sheet còn lại điều ẩn, khi cần mở sheet nào thì click vào liên kết ở sheet Menu và mở ra thêm 1 sheet mới (Sheet liên kết) kiểu giống file tạo sheet menu mà mình đính kèm ở trên.

Thanks.


+)Code Module:
PHP:
Sub Sheet_Menu()
    Sheets("MENU").Select
End Sub
Sub Nhap_Lieu()
    Application.ScreenUpdating = False
    Sheets("NHAPLIEU").Visible = xlSheetVisible
    Sheets("NHAPLIEU").Activate
    Application.ScreenUpdating = True
End Sub
Sub Sheet_Menu2()
    Application.ScreenUpdating = False
    Sheets("DATA").Visible = xlSheetVisible
    Sheets("DATA").Activate
    Application.ScreenUpdating = True
End Sub
Sub Bieu_Do()
    Application.ScreenUpdating = False
    Sheets("BIEUDO").Visible = xlSheetVisible
    Sheets("BIEUDO").Activate
    Application.ScreenUpdating = True
End Sub
Sub TRUY_XUAT()
    Application.ScreenUpdating = False
    Sheets("TRUYXUAT").Visible = xlSheetVisible
    Sheets("TRUYXUAT").Activate
    Application.ScreenUpdating = True
End Sub
Sub BAO_CAO()
    Application.ScreenUpdating = False
    Sheets("BAOCAO").Visible = xlSheetVisible
    Sheets("BAOCAO").Activate
    Application.ScreenUpdating = True
End Sub

+ Code Sheet("DATA"):
PHP:
Sub Data_Menu()
    Application.ScreenUpdating = False
    Sheets("MENU").Visible = True
    Sheets("MENU").Activate
    Sheets("DATA").Visible = xlSheetVeryHidden
    Application.ScreenUpdating = True
End Sub

.....vv
Bạn xem File sẽ rõ nhé.
 

File đính kèm

  • LINK SHEET 22.8-New.xls
    254.5 KB · Đọc: 18
+)Code Module:
PHP:
Sub Sheet_Menu()
    Sheets("MENU").Select
End Sub
Sub Nhap_Lieu()
    Application.ScreenUpdating = False
    Sheets("NHAPLIEU").Visible = xlSheetVisible
    Sheets("NHAPLIEU").Activate
    Application.ScreenUpdating = True
End Sub
Sub Sheet_Menu2()
    Application.ScreenUpdating = False
    Sheets("DATA").Visible = xlSheetVisible
    Sheets("DATA").Activate
    Application.ScreenUpdating = True
End Sub
Sub Bieu_Do()
    Application.ScreenUpdating = False
    Sheets("BIEUDO").Visible = xlSheetVisible
    Sheets("BIEUDO").Activate
    Application.ScreenUpdating = True
End Sub
Sub TRUY_XUAT()
    Application.ScreenUpdating = False
    Sheets("TRUYXUAT").Visible = xlSheetVisible
    Sheets("TRUYXUAT").Activate
    Application.ScreenUpdating = True
End Sub
Sub BAO_CAO()
    Application.ScreenUpdating = False
    Sheets("BAOCAO").Visible = xlSheetVisible
    Sheets("BAOCAO").Activate
    Application.ScreenUpdating = True
End Sub

+ Code Sheet("DATA"):
PHP:
Sub Data_Menu()
    Application.ScreenUpdating = False
    Sheets("MENU").Visible = True
    Sheets("MENU").Activate
    Sheets("DATA").Visible = xlSheetVeryHidden
    Application.ScreenUpdating = True
End Sub

.....vv
Bạn xem File sẽ rõ nhé.

Cái này đúng rồi, nhưng bây giờ mình tạo thêm sheet TONGHOP, rồi thêm code vào
MODULE)
Mã:
Sub TONG_HOP()
    Application.ScreenUpdating = False
    Sheets("TONGHOP").Visible = xlSheetVisible
    Sheets("TONGHOP").Activate
    Application.ScreenUpdating = True
End Sub

Thêm vào sheet TONGHOP
Mã:
Sub TongHop_Menu()
    Application.ScreenUpdating = False
    Sheets("MENU").Visible = True
    Sheets("MENU").Activate
    Sheets("TONGHOP").Visible = xlSheetVeryHidden
    Application.ScreenUpdating = True
End Sub

Nhưng nó không chạy được như những sheet bạn làm, Bạn cho mình hỏi cái này sai chổ nào vậy?
Với lại cách liên kết giữa nút liên kết ở menu với sheet con (vd: click vào Nhập liệu mở sheet NHAPLIEU), và nút MENU ở các sheet con để về lại Sheet MENU có phải dùng hyberlink không vậy
 
Cái này đúng rồi, nhưng bây giờ mình tạo thêm sheet TONGHOP, rồi thêm code vào
MODULE)
Mã:
Sub TONG_HOP()
    Application.ScreenUpdating = False
    Sheets("TONGHOP").Visible = xlSheetVisible
    Sheets("TONGHOP").Activate
    Application.ScreenUpdating = True
End Sub

Thêm vào sheet TONGHOP
Mã:
Sub TongHop_Menu()
    Application.ScreenUpdating = False
    Sheets("MENU").Visible = True
    Sheets("MENU").Activate
    Sheets("TONGHOP").Visible = xlSheetVeryHidden
    Application.ScreenUpdating = True
End Sub

Nhưng nó không chạy được như những sheet bạn làm, Bạn cho mình hỏi cái này sai chổ nào vậy?
Với lại cách liên kết giữa nút liên kết ở menu với sheet con (vd: click vào Nhập liệu mở sheet NHAPLIEU), và nút MENU ở các sheet con để về lại Sheet MENU có phải dùng hyberlink không vậy
Bạn gởi File bạn không làm được lên đây tôi xem giúp.
 

File đính kèm

  • LINK SHEET 22.8-New 1.xls
    274 KB · Đọc: 19
Lần chỉnh sửa cuối:
Với code của bạn @phulien1902, mỗi lần thêm 1 sheet là phải code. Như thế mình thấy ko hay. Mình vãn thích cái ý tưởng của file mẫu là hyperlink.
Mình đã thay đổi 1 chút code, nên bây h bạn có thể dùng thoải mái cho mục đích của bạn, bạn ko phải code thêm 1 tí nào nữa. Việc bạn cần làm là:
1. Tạo hyperlink đến sheet mới
2. Tạo shape menu cho sheet mới và assign macro "hide1sheet"

Quá đơn giản với bạn rùi. Bạn coi file và làm thử xem
 

File đính kèm

  • LINK SHEET 22.8-New 1.xls
    178.5 KB · Đọc: 19
Thanks các bạn GPE, mình đã làm được cái trên rồi.
Còn một cái nữa là ở Sheet MENU, mình muốn giới hạn khung di chuyển. Không cho phép di chuyển lên xuống thì có làm đc không.
 
Lần chỉnh sửa cuối:
Thêm nút "TỔNG HỢP" đó thế nào vậy bạn, và làm thế nào liên kết đến sheet TONGHOP thế?
Để thêm nút tổng hợp có 2 cách, tôi nói cách cơ bản:
+) Bạn vào AutoShapes \ BasicShapes \ Chọn lấy 1 cái
+) Click phải chuột vào Shapt ----> Exit Edit Text ---> gõ chữ "TỔNG HỢP"
+) Lại Click phải chuột vào Shapt ----> Assign_Macro ---->Chọn (TONG HOP) ---->OK.
Chỉ có vậy thôi.
 
Thanks các bạn GPE, mình đã làm được cái trên rồi.
Còn một cái nữa là ở Sheet MENU, mình muốn giới hạn khung di chuyển. Không cho phép di chuyển lên xuống thì có làm đc không.
Tại cửa sổ Propertics -----> ScrollArea:(Nhập vùng bạn cần giới hạn vào đây).
 
Web KT

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

Back
Top Bottom