Xin code link tới sheet và tự ẩn khi không dùng tới...

Liên hệ QC

vivian57

Thành viên mới
Tham gia
19/12/20
Bài viết
5
Được thích
1
Xin chào Anh/chị,
Hiện em có 1 file dữ liệu excel, bao gồm 1 Menu và 12 sheet chỉ số của 12 tháng.
Anh /chị cho em xin code VBA để mở sheet khi cần và tự động đóng lại khi trở về Menu với ạ.
 

File đính kèm

  • XIN CODE.xlsx
    69.5 KB · Đọc: 14
Bạn thao khảo bài này nha!
Link
 
Upvote 0
Xin chào Anh/chị
Hiện em có 1 file dữ liệu excel, bao gồm 1 Menu và 12 sheet chỉ số của 12 tháng.
Anh /chị cho em xin code VBA để mở sheet khi cần và tự động đóng lại khi trở về Menu với ạ.
Cách đơn giản nhất, không cần VBA, là ẩn sheet tabs. Sau đó, dùng gán Hyperlink để di chuyển giữa các tab.
 
Upvote 0
Cách đơn giản nhất, không cần VBA, là ẩn sheet tabs. Sau đó, dùng gán Hyperlink để di chuyển giữa các tab.

Bài này chủ thớt chỉ đích dùng VBA và đăng thẳng vào box lập trình rồi không thay đổi ý định đâu.Nhưng làm theo link trên thì cũng không khó để thực hiện
 
Upvote 0
Bài này chủ thớt chỉ đích dùng VBA và đăng thẳng vào box lập trình rồi không thay đổi ý định đâu.Nhưng làm theo link trên thì cũng không khó để thực hiện
Với Class Module thì quá sức với phần lớn thành viên GPE bạn ơi! Tôi chưa bao giờ thử viết class module bao giờ vì nhu cầu, yêu cầu đâu tới đó. Chờ câu trả lời của chủ thớt xem thế nào?
 
Upvote 0
Với Class Module thì quá sức với phần lớn thành viên GPE bạn ơi! Tôi chưa bao giờ thử viết class module bao giờ vì nhu cầu, yêu cầu đâu tới đó. Chờ câu trả lời của chủ thớt xem thế nào?

1608370954122.png
Trrích dẫn trong bài viết mà tôi để link ở trên,đây là bước tổng quát,chỉ có thể thôi là đã đáp ứng được yêu cầu của chủ thớt.còn để hiểu code hay không thì lại là vấn đề khác.vì đơn giản nếu chủ thớt đã không hiểu code thì cho dù bài này tôi làm từ A-Z cho chủ thớt thì chủ thớt cũng không hiểu code.Tôi thấy bài mà tôi để link ở trên ( bài #1 trong link đó) viết rất cụ thể,và dễ làm. còn nếu vướng mắc ở đâu đó hoặc chủ thớt không biết làm thì bạn ,tôi ,anh em diễn đàn lại tiếp tục hỗ trợ
 
Upvote 0
Với Class Module thì quá sức với phần lớn thành viên GPE bạn ơi! Tôi chưa bao giờ thử viết class module bao giờ vì nhu cầu, yêu cầu đâu tới đó. Chờ câu trả lời của chủ thớt xem thế nào?
Tôi lười không muốn đọc cái code kia nhưng tôi đoán là cái class module ấy dùng để tạo cách đi từ các sheet phụ trở về sheet chính và ẩn sheet phụ vừa rời khỏi. Tôi đoán thế là vì class module là cách hữu hiệu nhất để một đoạn code hoặc một hiệu ứng có thể dùng bởi nhiều sheets, nhiều controls.

Yêu cầu của thớt không khó đối với 1 sheet. Cái khó là vì có nhiều sheets chia chung một phát sinh cho nên muốn tránh copy paste 11 lần thì code trở nên khó.
 
Upvote 0
Nếu tôi hiểu ý thì làm như sau.


1. Trong VBE click từng sheet CHỈ SỐ T01, ..., CHỈ SỐ T12 -> thiết lập Visible = xlSheetVeryHidden

2. Trong VBE: menu Insert -> Module -> code cho Module1
Mã:
Public curr_sheet_name As String

Sub showSheet()
    curr_sheet_name = ThisWorkbook.Worksheets("MENU").Shapes(Application.Caller).TextFrame2.TextRange.Text
    With ThisWorkbook.Worksheets(curr_sheet_name)
        .Visible = xlSheetVisible
        .Activate
    End With
End Sub

3. Trong VBE đúp chuột vào Sheet1 (MENU) và dán code
Mã:
Private Sub Worksheet_Activate()
    If Len(curr_sheet_name) Then
        ThisWorkbook.Worksheets(curr_sheet_name).Visible = xlSheetVeryHidden
        curr_sheet_name = ""
    End If
End Sub

4. Trên sheet MENU phải chuột trên từng shape với text CHỈ SỐ T01, ..., CHỈ SỐ T12 -> chọn Assign macro -> chọn showSheet

Lưu lại thành XIN CODE.xlsm
 
Upvote 0
Nếu tôi hiểu ý thì làm như sau.


1. Trong VBE click từng sheet CHỈ SỐ T01, ..., CHỈ SỐ T12 -> thiết lập Visible = xlSheetVeryHidden

2. Trong VBE: menu Insert -> Module -> code cho Module1
Mã:
Public curr_sheet_name As String

Sub showSheet()
    curr_sheet_name = ThisWorkbook.Worksheets("MENU").Shapes(Application.Caller).TextFrame2.TextRange.Text
    With ThisWorkbook.Worksheets(curr_sheet_name)
        .Visible = xlSheetVisible
        .Activate
    End With
End Sub

3. Trong VBE đúp chuột vào Sheet1 (MENU) và dán code
Mã:
Private Sub Worksheet_Activate()
    If Len(curr_sheet_name) Then
        ThisWorkbook.Worksheets(curr_sheet_name).Visible = xlSheetVeryHidden
        curr_sheet_name = ""
    End If
End Sub

4. Trên sheet MENU phải chuột trên từng shape với text CHỈ SỐ T01, ..., CHỈ SỐ T12 -> chọn Assign macro -> chọn showSheet

Lưu lại thành XIN CODE.xlsm
em cám ơn ạ, vì ban đầu mới tập về VBA em chưa rành, nhưng làm theo như vầy thì ok rồi ạ
 
Upvote 0
Web KT

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

Back
Top Bottom