Xin hướng dẫn: Ẩn Sheet nhưng vẫn liên kết được

Liên hệ QC
Các Anh Chị ơi, em đang làm 1 file theo dõi bảo trì của khách hàng, hiện tại em có 302 khách hàng.
Em muốn làm 1 file với sheet đầu tiên là danh mục các khách hàng đang được bảo trì.
Các sheet còn lại là thông tin cụ thể của từng khách hàng: ngày đi bảo trì, công việc làm, tình trạng mặt hàng đó.....
Em có mò trên group mình và có thấy 1 file dùng hyperlink tự động ( nghĩa là thêm 1 sheet, thì sheet danh mục đầu sẽ tự cập nhật thêm tên khách hàng, tên sheet đó)
Nhưng do file em nhiều sheet, em muốn ẩn các sheet đi, chỉ còn 1 sheet danh mục đầu thôi, khi cần mở sheet nào để cập nhật thì nhấp vào link sẽ mở sheet ẩn đó ra, khi qua lại trang chính thì sheet đó sẽ tự động ẩn đi.
Em có mò trên google thấy đoạn code này nhưng không hiểu các áp dụng, em đã bê nguyên đoạn copy vào VBA mà không chạy được, mong Các Anh chị chỉ giúp.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim strLinkSheet As String
If InStr(Target.Parent, "!") > 0 Then
strLinkSheet = Left(Target.Parent, InStr(1, Target.Parent, "!") - 1)
Else
strLinkSheet = Target.Parent
End If
Sheets(strLinkSheet).Visible = True
Sheets(strLinkSheet).Select
Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_Activate()
On Error Resume Next
Sheets(ActiveCell.Value2).Visible = False
End Sub
 

File đính kèm

  • Nhật ký bảo trì.xlsm
    29.1 KB · Đọc: 8
Anh Chị ơi, xin giúp em với. Em mò mẫm trên group thì có cái file tạo ra list danh mục các sheet rồi, nhấp vào tên sheet nào thì sẽ hiện ra sheet đang ẩn đó, khi trở về sheet danh mục và ẩn các sheet kia.
Cụ thể là: em có file với gần khoảng 200 sheet ( mỗi khách hàng là 1 sheet)
sheet đầu tiên là sheet danh mục: là tổng hợp tên các khách hàng và cột STT là tên sheet, nhấp vào đó sẽ hiện ra sheet đang ẩn. Nhấp quay lại danh mục thì sheet đó ẩn đi.
Nhưng em gặp trở ngại là em muốn hiện những sheet như sheet hợp đồng, sheet báo giá....thì không được, nó chỉ hiện duy nhất 1 sheet danh mục thôi ạ.
Xin anh chị chỉ cách sửa giúp em với ạ.
 

File đính kèm

  • Nhật ký bảo trì.xlsm
    227.6 KB · Đọc: 7
Anh Chị ơi, xin giúp em với. Em mò mẫm trên group thì có cái file tạo ra list danh mục các sheet rồi, nhấp vào tên sheet nào thì sẽ hiện ra sheet đang ẩn đó, khi trở về sheet danh mục và ẩn các sheet kia.
Cụ thể là: em có file với gần khoảng 200 sheet ( mỗi khách hàng là 1 sheet)
sheet đầu tiên là sheet danh mục: là tổng hợp tên các khách hàng và cột STT là tên sheet, nhấp vào đó sẽ hiện ra sheet đang ẩn. Nhấp quay lại danh mục thì sheet đó ẩn đi.
Nhưng em gặp trở ngại là em muốn hiện những sheet như sheet hợp đồng, sheet báo giá....thì không được, nó chỉ hiện duy nhất 1 sheet danh mục thôi ạ.
Xin anh chị chỉ cách sửa giúp em với ạ.
Bạn click vào This Workbook và sửa lại code thêm tên sheet muốn hiện vào sự kiện Workbook_SheetDeactivate nhé.
Mã:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If Sh.Name <> "danh muc" Then Sh.Visible = xlSheetVeryshow
    If Sh.Name = "HD Ca Nhan" Or Sh.Name = "BAO GIA" Then Sh.Visible = xlSheetVisible
End Sub
 
Bạn click vào This Workbook và sửa lại code thêm tên sheet muốn hiện vào sự kiện Workbook_SheetDeactivate nhé.
Mã:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If Sh.Name <> "danh muc" Then Sh.Visible = xlSheetVeryshow
    If Sh.Name = "HD Ca Nhan" Or Sh.Name = "BAO GIA" Then Sh.Visible = xlSheetVisible
End Sub
dạ vâng, để mình làm thử nhé, cảm ơn nhiều ạ
 
dạ vâng, để mình làm thử nhé, cảm ơn nhiều ạ

Bạn click vào This Workbook và sửa lại code thêm tên sheet muốn hiện vào sự kiện Workbook_SheetDeactivate nhé.
Mã:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If Sh.Name <> "danh muc" Then Sh.Visible = xlSheetVeryshow
    If Sh.Name = "HD Ca Nhan" Or Sh.Name = "BAO GIA" Then Sh.Visible = xlSheetVisible
End Sub
Dạ mình làm được rồi, file chạy được rồi. Vậy là muốn hiện sheet nào thì cứ dùng câu lệnh or sh.name đúng không ạ?
Nhưng mình có 5 sheet có đặt tên muốn hiện trực tiếp trên file thì có câu lệnh nào ngắn gọn hơn câu lệnh trên không ạ? Các sheet này sẽ đặt tên là "HD Ca Nhan", "Bao gia sua chua", bang gia vat tu. Còn các sheet khách hàng là đặt theo số thứ tự rồi ạ.
Và cho mình hỏi thêm 1 điểm nữa nha. Mình muốn trên bảng danh mục chỉ hiện các sheet đặt theo số thứ tự, còn các sheet mà đặt tên bằng chữ như "bao gia" thì không hiện có được không ạ, tại nó không có bị ẩn nên không cần hiện lên danh mục ạ.
Xin cảm ơn bạn.


1640415728802.png
 
Dạ mình làm được rồi, file chạy được rồi. Vậy là muốn hiện sheet nào thì cứ dùng câu lệnh or sh.name đúng không ạ?
Nhưng mình có 5 sheet có đặt tên muốn hiện trực tiếp trên file thì có câu lệnh nào ngắn gọn hơn câu lệnh trên không ạ? Các sheet này sẽ đặt tên là "HD Ca Nhan", "Bao gia sua chua", bang gia vat tu. Còn các sheet khách hàng là đặt theo số thứ tự rồi ạ.
Bạn sửa lại :
Mã:
If IsNumeric(Sh.Name) = False Then Sh.Visible = xlSheetVisible
Sheet nào tên không phải là số thì sẽ luôn hiện.
Còn vấn đề: "muốn trên bảng danh mục chỉ hiện các sheet đặt theo số thứ tự..." bạn tìm hiểu thêm công thức đặt trong Define Name (Ctrl + F3), mình không rành cái đó nên không chỉnh sửa được.
 
Hỏi

Mình là bộ đội trình độ hạn chế, mình đã xem fie của bạn làm nhưng vẫn không làm được. Xin chỉ mình cách như fie này. ẩn sheet nhưng vẫn chỉ mục được.
cám on trước nghe
cho mình hỏi là muốn thêm sheet nữa thì phải làm như thế nào vậy bạn. mình cũng có ý định làm file nhiều sheet mà chừng đấy sheet như mẫu của bạn hơi ít nên bạn chỉ mình đc ko bạn.
 
Dạ mình làm được rồi, file chạy được rồi. Vậy là muốn hiện sheet nào thì cứ dùng câu lệnh or sh.name đúng không ạ?
Nhưng mình có 5 sheet có đặt tên muốn hiện trực tiếp trên file thì có câu lệnh nào ngắn gọn hơn câu lệnh trên không ạ? Các sheet này sẽ đặt tên là "HD Ca Nhan", "Bao gia sua chua", bang gia vat tu. Còn các sheet khách hàng là đặt theo số thứ tự rồi ạ.
Và cho mình hỏi thêm 1 điểm nữa nha. Mình muốn trên bảng danh mục chỉ hiện các sheet đặt theo số thứ tự, còn các sheet mà đặt tên bằng chữ như "bao gia" thì không hiện có được không ạ, tại nó không có bị ẩn nên không cần hiện lên danh mục ạ.
Xin cảm ơn bạn.


View attachment 270752
anh chị ơi, e đã làm theo hướng dẫn mẫu mà kích vào cái sheet nào nó ẩn hết hic. Em muốn 1 file sheet Home hiện cố định, chỉ cần 1 sheet đó bấm vào các tên khác mới hiện ra mà cả home cũng ẩn hết. Anh chị Hỗ trợ giúp em với ạ. Em cảm ơn nhiều ạ

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name <> "Home" Then Sh.Visible = xlSheetVeryshow
If Sh.Name <> "Home" Or Sh.Name = "danh muc" Then Sh.Visible = xlSheetVeryshow

End Sub
 

File đính kèm

  • QUAN LY IN UNC (2024).xlsx
    308.2 KB · Đọc: 4
Web KT
Back
Top Bottom