Kết quả 1 đến 5 của 5

Chủ đề: Viết mã lệnh cho nút Check Box để ẩn hiện cùng lúc nhiều Sheet

  1. #1
    vanthinh1088 Guest

    Viết mã lệnh cho nút Check Box để ẩn hiện cùng lúc nhiều Sheet

    Anh chị nào có thể giúp em viết một đoạn mã VBA để thực hiện thao tác này không ?
    Em có một bảng tính mẫu thì có nhiều sheet, khi copy bảng tính mẫu này để thực hiện tính cho một yêu cầu công việc khác nhau thì các Sheet trong bảng tính này cũng có thể có toàn bộ các sheet như trong bảng tính mẫu nhưng cũng có thể chỉ có một vài Sheet thôi. Vậy nên em đã tạo ra các nút Check Box để quản lý cho phép các Sheet nào được phép hiển thị hoặc không.
    Bây giờ nhờ mọi người giúp em viết mã lệnh thế nào để khi tích vào các nút Check box tương ứng đó thì sẽ ẩn hoặc hiện được các Sheet theo ý muốn. Em có gửi kèm theo File bảng tính em đang làm. Mọi người giúp em với nha. Em cảm ơn!

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Không biết có đúng ý bạn k? vào sheet 1 bấm vào tên tương ứng sẽ hiện ra bảng sheet mà bạn mong muốn!

  3. #3
    maruco Guest
    Trích dẫn Gửi bởi trantien384
    Bây giờ nhờ mọi người giúp em viết mã lệnh thế nào để khi tích vào các nút Check box tương ứng đó thì sẽ ẩn hoặc hiện được các Sheet theo ý muốn. Em có gửi kèm theo File bảng tính em đang làm. Mọi người giúp em với nha. Em cảm ơn!
    Xem file, chả biết checkbox nào ứng với sheet nào cả

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Các nút Check Box tuơng ứng với các Sheet như trong hình vẽ đấy anh
    <font color="orange">ndu9608163
    </font>

  5. #5
    Haupham Guest
    Trích dẫn Gửi bởi trantien384
    Các nút Check Box tuơng ứng với các Sheet như trong hình vẽ đấy anh
    <font color="orange">ndu9608163
    </font>
    Công việc ta cần làm là:
    1> Đánh dấu các checkBox
    Mục đích để code nhận biết checkbox nào tương ứng với sheet nào.
    Bằng cách click phải vào từng checkbox, chọn Format Control, vào tab Alt Text, gõ tên sheet vào khung Alternative text
    Nếu một checkbox liên kết với nhiều sheet thì liệt kê các tên sheet cách nhau bởi dấu phẩy(xem hình)

    <div class="size_fullsize"></div>































    2> Viết code
    Dùng code sau:


    Mã:
    Sub SheetsVisible()
      Dim aSheets, wsItem
      Dim chk As CheckBox
      Application.ScreenUpdating = False
      Set chk = Sheets("Thong tin").CheckBoxes(Application.Caller)
      aSheets = Split(chk.ShapeRange.AlternativeText, ",")
      For Each wsItem In aSheets
        Worksheets(CStr(wsItem)).Visible = (chk.Value > 0)
      Next
      Application.ScreenUpdating = True
    End Sub

    3> Liên kết các checkBox với code

    Bằng cách chọn toàn bộ các checkbox, click phải chuột, chọn Assign Macro, chọn vào tên macro "SheetsVisible" rồi bấm OK
    Giờ thử nghiệm bằng cách bấm vào checkbox và.. thưởng thức thành quả

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •