Hỏi code Ẩn hiện sheet (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

letuongqt

Thành viên hoạt động
Tham gia
26/3/08
Bài viết
141
Được thích
24
Đoạn code ẩn hiện sheet lấy từ diễn đàn , khi áp dụng không biết sai chổ nào mà khi dùng liên kết đến sheet vẫn không hiện được sheet . Nhờ các anh hướng dẫn giúp . Rất cảm ơn .
(Trước đây tôi đã áp dụng chạy được nhưng bây giờ thì không ).
 

File đính kèm

Mình không biết bạn lấy nó từ đâu nhưng theo mình thì mình sẽ làm cách này! Bạn bỏ hết mấy cái Hyperlink cho các ô C5, C6, C7 đi vì nó đâu có làm được gì đâu. Sữa dữ liệu lại thành tên Sheet tức là C5=a1, C6=a2, C7=a3 Rồi sữa lại đoạn code VBA thành như bên dưới.
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)     On Error Resume Next     For i = 1 To Sheets.Count Step 1     If Sheets(i).Name  "mucluc" Then         Sheets(i).Visible = False     End If     Next     Sheets(Target.Value).Visible = True     Sheets(Target.Value).Select End Sub
Và giờ thì bạn thử lại xem có hiệu quả không? Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn PiKaChu

Mình cảm ơn bạn trong đoạn code ẩn hiện sheet, mình đã làm theo hướng đãn nhưng trong sheet a2 khi cilk chuột nó cứ nhấp nháy mãi mới được , bạn xem giúp nhé ( file đã chỉnh đính kèm)
 

File đính kèm

Upvote 0
Mình cảm ơn bạn trong đoạn code ẩn hiện sheet, mình đã làm theo hướng đãn nhưng trong sheet a2 khi cilk chuột nó cứ nhấp nháy mãi mới được , bạn xem giúp nhé ( file đã chỉnh đính kèm)
Bạn remove mấy cái Hyperlink đi là xong chuyện
Thêm nữa:
- Code lý ra chỉ cho vào 1 sheet (là sheet Mucluc) ---> Sao bạn paste code vào tùm lum chổ thế kia?
- Code có thể rút gọn:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  On Error Resume Next
  For i = 1 To Sheets.Count
    Sheets(i).Visible = (Sheets(i).Name = Target Or Sheets(i).Name = "mucluc")
  Next
  Sheets(Target).Select
End Sub
 
Upvote 0
Cho em hỏi có cách nào gán macro cho cell nào đó để mình nhấn enter thì nó tự động chạy con macro đó không các bác.
 
Upvote 0
Cho em hỏi có cách nào gán macro cho cell nào đó để mình nhấn enter thì nó tự động chạy con macro đó không các bác.
 
Upvote 0
Hỏi cách ẩn, hiện Sheet
Bạn nào biết cách ẩn hiện Sheet trong Excel giúp mình với:
Mình đã thử theo cách: Trong bảng tính cần được bảo mật, bạn hãy nhấn ALT+F11 để mở cửa sổ Microsoft Visual Basic ra. Trong cửa sổ Project - VBA Project, nhắp đúp vào VBA Project, tiếp tục nhắp đúp vào Microsoft Excel Objects để mở các bảng tính trong tài liệu sau đó rồi chọn bảng tính mà bạn muốn giấu -> rồi nhấn F4. Trong tùy chọn Visible bạn nhắp vào dấu tam giác chọn 2-xlSheetVeryHidden, cuối cùng đóng Microsoft Visual Basic này lại và xem kết quả thế nào

Khi nào muốn bảng tính hiện ra trở lại, thì bạn chỉ cần thực hiện lại các thao tác trên và chọn -1-xlSheetVisible là được.
Nhưng có một số Sheet khi mở ẩn không được vì trong Visible nó báo sheet đó ghi 0-xlSheetHiden mà không phải 2-xlSheetVeryHidden để chuyển về 1-xlSheetVisible. Khi bấm về 1-xlSheetVisible thì Micrồt Visual Basic báo Unable to set the Visible property of the Worksheet class
Có ai biết giúp mình với
Địa chỉ email của mình là: minhtuanxl@gmail.com
Thanks
 
Upvote 0
Code ẩn Sheets (2 kiểu ẩn)
Mã:
Sub HideSheet()
    Sheets("Sheet2").Visible = 0
    Sheets("Sheet3").Visible = 2
End Sub
Code hiện Sheet
Mã:
Sub UnHideSheet()
    Sheets("Sheet2").Visible = -1
    Sheets("Sheet3").Visible = -1
End Sub
 
Upvote 0
Nhưng có một số Sheet khi mở ẩn không được vì trong Visible nó báo sheet đó ghi 0-xlSheetHiden mà không phải 2-xlSheetVeryHidden để chuyển về 1-xlSheetVisible. Khi bấm về 1-xlSheetVisible thì Micrồt Visual Basic báo Unable to set the Visible property of the Worksheet class
Có ai biết giúp mình với
Địa chỉ email của mình là: minhtuanxl@gmail.com
Thanks

trả lời: workbook cua bạn đã bị protect, chỉ cần unprotect là xong. quá đơn giản
có vấn đề j chưa rõ yahoo mes tui là : huydinhbk
 
Upvote 0
111

Mình cũng bị như trên, không mở được sheet thì làm sao unprotect sheet đó hả bạn? giúp mình với!!!
 
Upvote 0
Nhờ các bác chỉ giúp cặn kẽ hơn và rõ hơn mình copy trên mạng&nbsp; ẩn được sheet nhưng khi tạo nút công cụ thì không cho sheet ẩn đi hiện lại được nhờ các bác chỉ giùm mail View attachment 73646<A href="mailto:nguyenhaison73@gmail.com">nguyenhaison73@gmail.com</A>
 
Upvote 0
Nhờ các bác chỉ giúp cặn kẽ hơn và rõ hơn mình copy trên mạng&amp;nbsp; ẩn được sheet nhưng khi tạo nút công cụ thì không cho sheet ẩn đi hiện lại được nhờ các bác chỉ giùm mail View attachment 73646&lt;A href="mailto:nguyenhaison73@gmail.com"&gt;nguyenhaison73@gmail.com&lt;/A&gt;
 
Upvote 0
Nhờ các bác chỉ giúp cặn kẽ hơn và rõ hơn mình copy trên mạng&amp;nbsp; ẩn được sheet nhưng khi tạo nút công cụ thì không cho sheet ẩn đi hiện lại được nhờ các bác chỉ giùm mail View attachment 73646&lt;A href="mailto:nguyenhaison73@gmail.com"&gt;nguyenhaison73@gmail.com&lt;/A&gt;
Xem bài viết này sẽ làm được ngay:
http://www.giaiphapexcel.com/forum/showthread.php?37055-Tạo-nút-nhấn-để-link-đến-các-sheet&
 
Upvote 0
Cả nhà thông thái ơi, giúp em với ạ.
Em tạo link sheet, nhưng khi đến sheet chính, em lại không tạo nút button để quay trở lại nên bị mất 1 số sheet. Ai đó giúp em làm thế nào để quay lại sheet ban đầu, và thế nào để hiện lại những sheet bị ẩn.
 

File đính kèm

Upvote 0
Cả nhà thông thái ơi, giúp em với ạ.
Em tạo link sheet, nhưng khi đến sheet chính, em lại không tạo nút button để quay trở lại nên bị mất 1 số sheet. Ai đó giúp em làm thế nào để quay lại sheet ban đầu, và thế nào để hiện lại những sheet bị ẩn.
Chép cái này vào module Module, chạy thử xem
[GPECODE=vb]Public Sub UnHide_Sh()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Visible = xlSheetVisible
Next Ws
End Sub[/GPECODE]
 
Upvote 0
Mã:
ActiveWindow.DisplayWorkbookTabs = False
Ẩn
Mã:
ActiveWindow.DisplayWorkbookTabs = True
Hiện
Gán vào button nào đó rồi nhấn, hiện, ẩn tất cả các sheet trên bảng excel&&&%$R
 
Upvote 0
Nhờ anh chị hoàn thiện lại cho em nút bấm liên kết từ Trang chủ đến các sheet và từ sheet khi bấm vào nút Trang chủ thì quay lại trang đầu. Nội dung code đã xin ở bài trên a.
 
Upvote 0
Em xin đính kèm file bên dưới
 

File đính kèm

Upvote 0
anh chị nào giúp em với được không ak.
Chuện là thế này. Trong file excel e có 10 sheets. Em muốn là e đang ở sheet hiện tại thì em ấn nút "ẩn" thì ẩn toàn bộ sheet đằng sau sheet hiện tại ạ( ví dụ sheet hiện tại là sheet5 thì ấn nút ẩn là ẩn toàn bộ sheet6~sheet10 ak). và thêm nữa là muốn một nút ấn hiện, mỗi lần ấn hiện là hiện sheet kế tiếp. (vi dụ ấn hiện là sheet6 hiện).
Anh chị hãy chia sẻ giúp em vấn dề này vs
Em chân thành cám ơn
gmail của em: nguyenhuyhiep1210@gmail.com
 
Upvote 0
anh chị nào giúp em với được không ak.
Chuện là thế này. Trong file excel e có 10 sheets. Em muốn là e đang ở sheet hiện tại thì em ấn nút "ẩn" thì ẩn toàn bộ sheet đằng sau sheet hiện tại ạ( ví dụ sheet hiện tại là sheet5 thì ấn nút ẩn là ẩn toàn bộ sheet6~sheet10 ak). và thêm nữa là muốn một nút ấn hiện, mỗi lần ấn hiện là hiện sheet kế tiếp. (vi dụ ấn hiện là sheet6 hiện).
Anh chị hãy chia sẻ giúp em vấn dề này vs
Em chân thành cám ơn
gmail của em: nguyenhuyhiep1210@gmail.com
Tại sao giúp bạn phải gửi mail cho bạn mà không gửi lên chổ này. Không lẻ bạn gửi tiền thù lao à.
 
Lần chỉnh sửa cuối:
Upvote 0
Không phải nhé. Gửi lên cho tất cả mọi người ak.
Dùng 2 đoạn code dưới đây.
Mã:
Public Sub Hide()
On Error Resume Next
Dim i As Integer
  For i = Sheets.Count To 1 Step -1
    If Sheets(i).Name = ActiveSheet.Name Then
        Exit For
    Else
        Sheets(i).Visible = False
    End If
  Next i
End Sub
Public Sub Show()
On Error Resume Next
Dim i As Integer
  For i = 1 To Sheets.Count
    If Sheets(i).Name = ActiveSheet.Name Then Exit For
  Next i
If i < Sheets.Count Then Sheets(i + 1).Visible = True
End Sub
 
Upvote 0
Dùng 2 đoạn code dưới đây.
Mã:
Public Sub Hide()
On Error Resume Next
Dim i As Integer
  For i = Sheets.Count To 1 Step -1
    If Sheets(i).Name = ActiveSheet.Name Then
        Exit For
    Else
        Sheets(i).Visible = False
    End If
  Next i
End Sub
Public Sub Show()
On Error Resume Next
Dim i As Integer
  For i = 1 To Sheets.Count
    If Sheets(i).Name = ActiveSheet.Name Then Exit For
  Next i
If i < Sheets.Count Then Sheets(i + 1).Visible = True
End Sub
Em Nghĩ nếu dùng Index của sheets thì có vẻ hay hơn.
Mã:
ActiveSheet.Index
 
Upvote 0
Code ở bài #24 chưa đáp ứng yêu cầu "hiện".
Quote: mỗi lần ấn hiện là hiện sheet kế tiếp

Chú: Sheets collection bao gồm cả Chart sheets. WorkSheets collection mới thuần worksheet.
 
Upvote 0
CHo em hỏi thêm ak. sau khi lưu vào modul rồi thoát ra lại mất ạ. không lưu lại được mã code ak.
 
Upvote 0
Cả nhà giúp em thuật toán này được không ak. Em bh ms bắt đầu làm quen vs vba mong cả nhà giúp đỡ. Em nhờ mọi ng giúp ak.
Ở sheet1 đầu tiên cứ 7 dòng là gộp một ô.
- Dòng 10- dòng 17 có tên detail1-> Nằm ở cột A dòng 10-17,
- Dòng 18 - dòng 24 là detail2, -> Nằm ở cột A dòng 18-24.
- Dòng 25 - dòng 32 là detail3, Nằm ở cột A dòng 25-32.
Ở vị trí ô (D1:10) có điều kiện là nhập "detail1" thì sẽ ẩn detail2 và detail3 ( tương ứng là từ dòng 18 đến dòng 32) bị ẩn.
Ý tưởng:
1. Ô nhập điều kiện D1:10;
2. Ẩn dòng sau khi nhập điều kiện ở D1:10
3. Hiện toàn bộ dòng đã ẩn.
Mong cả nhà chỉ bảo giúp em. viết giúp em với ak.
 
Upvote 0

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

Back
Top Bottom