Mình có tạo 2 Tab trên Ribbon, loay hoay mãi vẫn không biết cách thiết lập cho luôn hiện Tab1 còn Tab2 thuộc dạng tùy chọn có thể ẩn hiện lên khi cần. Thiết lập tùy chọn ẩn hiện Tab 2 được ghi xuống Sheet với giá trị True, False
Nhờ anh chị giúp đỡ ạ
Mình có tạo 2 Tab trên Ribbon, loay hoay mãi vẫn không biết cách thiết lập cho luôn hiện Tab1 còn Tab2 thuộc dạng tùy chọn có thể ẩn hiện lên khi cần. Thiết lập tùy chọn ẩn hiện Tab 2 được ghi xuống Sheet với giá trị True, False
Nhờ anh chị giúp đỡ ạ
Đưa cái file thực tế của bạn lên đây tôi sẽ giúp, còn file này giúp xong bạn lại không biết áp dụng vào file thực tế sẽ mất thời gian thêm.
Còn có đủ khả năng thì có thể tham khảo file ở bài này sẽ có cái bạn cần.
Như lần trước mình có hứa ở https://giaiphapexcel.com/diendan/threads/m%E1%BA%B9o-office-100-n%C3%AAn-bi%E1%BA%BFt-ch%E1%BB%89-c%E1%BA%A7n-g%C3%A1n-m%E1%BB%99t-macro-duy-nh%E1%BA%A5t-cho-t%E1%BA%A5t-c%E1%BA%A3-shape.148486/#post-960315 nay mình chia sẻ ứng dụng quản lý quán cafe cho ai có nhu...
Cách thêm vào tạo ribbon em biết rồi a. Em đã tạo 3 Tab Ribbon cho 3 chức năng em cần, tuy nhiên khi chạy file em muôn Tab chính luôn hiển thị các Tab còn lại tùy chọn bằng cách dùng Form đặt checkbox cho phép Tab nào được hiển thị hay ẩn ạ (Giá trị True hay False sẽ ghi xuống Sheet cấu hình để cho việc chạy lần sau)
Cách thêm vào tạo ribbon em biết rồi a. Em đã tạo 3 Tab Ribbon cho 3 chức năng em cần, tuy nhiên khi chạy file em muôn Tab chính luôn hiển thị các Tab còn lại tùy chọn bằng cách dùng Form đặt checkbox cho phép Tab nào được hiển thị hay ẩn ạ (Giá trị True hay False sẽ ghi xuống Sheet cấu hình để cho việc chạy lần sau)
Nếu đúng là bạn biết tạo menu trên ribbon thì bạn phải hiểu được những gì tôi viết sau đây.
-------------
Nếu bạn tự làm thì lần sau bạn sẽ biết cách làm và nhớ lâu.
Do bạn không đính kèm tập tin có menu của mình (các tập tin đính kèm rõ ràng là code của người khác) nên tôi chỉ viết chay thôi, hi vọng không sai.
2. Trong tập tin Exccel trong module ngay trên cùng dán code
Mã:
Private rb As IRibbonUI
Sub RibbonLoad(ribbon As IRibbonUI)
Set rb = ribbon
End Sub
3. trong module thêm
Mã:
Sub AnHienTab2()
rb.InvalidateControl ("MyCustomTab") ' ép làm mới thẻ MyCustomTab
End Sub
Tất nhiện bạn phải thay "MyCustomTab" bằng ID của "My Tab 2". Do bạn không đính kèm tập tin nên tôi không biết ID của nó thế nào.
4. Trong module Sheet3 dán code
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then AnHienTab2 ' gọi AnHienTab2 để làm mới "My Tab 2"
End Sub
------------
Lưu ý: Trong code ở trên thay Sheet3 bằng sheet của mình.
sub MyCustomVisible có thêm tham số control As IRibbonControl để làm gì?
Được phép gán cho nhiều control, vd. nhiều TAB, cùng một callback, vd. callback MyCustomVisible. Giả sử callback MyCustomVisible được gán cho 10 TAB khác nhau. Lúc đó callback MyCustomVisible sẽ được gọi lần lượt 10 lần: lần gọi 1 thì control = Tab1, lần gọi 2 thỉ control = Tab2, ..., lần gọi 10 thì control = Tab10. Code của MyCustomVisible phải căn cứ vào control.id để trả về quyết định ẩn hiện cho tab có ID = control.id. Vd. nếu "My Tab 2" có id = "My Custom Tab 2" thì giá trị trả về trong returnedVal cho trường hợp control.id = "My Custom Tab 2" chính là để ẩn/hiện "My Tab 2".
Mã:
Sub MyCustomVisible(control As IRibbonControl, ByRef returnedVal)
Select Case control.ID
Case "My Custom Tab 2": returnedVal = Sheet3.Range("A1").Value <> ""
' ...
End Select
End Sub
Có 4 Tab vậy Tab nào luôn hiển thị, Tab nào cần ẩn? Khi ẩn muốn nó hiển thị thì nháy vào nút nào? Dữ liệu ghi nhận (Ẩn/hiện) sẽ ghi vào sheet nào? Ô nào?...
Cái vụ Textbox tui không biết? Tôi chỉ sửa tên CheckBox thôi chẳng có đá động gì các Textbox của bạn cả. Nếu báo lỗi Textbox thì bạn xem lại code của mình đi. Mà máy tui click vào tất cả các textbox đều chạy ầm ầm.
Cái vụ Textbox tui không biết? Tôi chỉ sửa tên CheckBox thôi chẳng có đá động gì các Textbox của bạn cả. Nếu báo lỗi Textbox thì bạn xem lại code của mình đi. Mà máy tui click vào tất cả các textbox đều chạy ầm ầm.
Máy tui không hề bị nhé!
Một điều cần lưu ý khi thiết kế file Excel có sử dụng Ribbon: Khi sửa code thì biến gobjRibbon sẽ reset lại, chính vì vậy khi sửa code muốn chạy lại thì nên đóng file excel xong mở lại và Test thử (Lúc này chưa hề sửa code nhé). Nếu sử code xong và cho chạy luôn là nó sẽ báo lỗi. Bạn tự kiểm tra phải vậy không?