Liên kết với Sheet ẩn

Liên hệ QC

thanhnhanubnd

Thành viên hoạt động
Tham gia
12/9/08
Bài viết
180
Được thích
29
Nghề nghiệp
Xay dung
Mình có 1 sheet quản lý chung liên kết với 20 sheet khác, để đở rối mình cho 20 sheet ấy ẩn đi,
1. Có cách nào khi làm sheet ẩn mà liên kết giửa Sheet quản lý và sheet ẩn vẫn thực hiện.
2. Khi liên kết đến 1 sheet nào đó thì sheet đó sẽ tự động hiện ra, các macro vẫn chạy bình thường.
 
1.Sheet ẩn không liên quan đến tính toán.chỉ là nó ẩn đi thôi.
2.Dùng marco mà làm.(=cách nhận biết tên sheet dc liên kết),cho nó visible=true,.....
 
Mình có 1 sheet quản lý chung liên kết với 20 sheet khác, để đở rối mình cho 20 sheet ấy ẩn đi,
1. Có cách nào khi làm sheet ẩn mà liên kết giửa Sheet quản lý và sheet ẩn vẫn thực hiện.
2. Khi liên kết đến 1 sheet nào đó thì sheet đó sẽ tự động hiện ra, các macro vẫn chạy bình thường.

Bạn nói rõ liên kết này là liên kết bằng công thức có liên quan hay liên kết dạng Hypelink!?
 
Chỉ liên kết dạng Hyperlink giữa các sheet.
Nếu không Hyperlink được thì làm cách nào cũng được, yêu cầu liên kết được thì thôi.
 
Mình có 1 sheet quản lý chung liên kết với 20 sheet khác, để đở rối mình cho 20 sheet ấy ẩn đi,
1. Có cách nào khi làm sheet ẩn mà liên kết giửa Sheet quản lý và sheet ẩn vẫn thực hiện.
2. Khi liên kết đến 1 sheet nào đó thì sheet đó sẽ tự động hiện ra, các macro vẫn chạy bình thường.

1. Khi các sheet ẩn đi thì các lliên kết vẫn thực hiện bình thường, không có trở ngại

2. Khi các sheet ẩn đi thì không ảnh hưởng đến code cả.

Các bạn thường hay sử dụng :

PHP:
Sheet1.Select
Range("A1").Value = 12


Thay vì thế bạn dùng : Xác định Sheet mình định tính toán, làm việc
PHP:
Sheet1.Range("A1").Value = 12


Thân!
 
Các bạn cho mình hỏi vậy muốn thay đổi dữ liệu trong sheet ẩn thì viết code thế nào ? Thanks
 
Nếu bạn muốn thấy dữ liệu khi thay đổi (Tức là thay đổi bằng tay, tác động bằng chuột vào bàn phím) thì dùng lệnh hiện lại sheet ẩn đó. Ví dụ sheet2 thì viết Sheet2.Visible = xlSheetVisible Còn dùng code VBA thay đổi tự động luôn thì khỏi cần hiện lên chi cho mệt. Ví dụ:
PHP:
Sub kui() Sheet2.Range("B12") = 12 End Sub
Vậy thôi! Thân.
 
Lần chỉnh sửa cuối:
Minh gui file yêu cầu, các bạn xem giúp nhé!!

Mình muốn khi Sheet chính (main) nhấn liên kết với Sheet ẩn nào (phụ 1), thì sheet đó hiện lên
và có 1 nút trở về sheet chính,( khi nhấn nút này thì sẽ trở về sheet chính và sheet ẩn ( phụ 1) lại tiếp tục bị ẩn.)

Tức là mặc nhiên trên màn hình chỉ thấy 1 sheet chính, các sheet còn lại vẫn tồn tại nhưng bị ẩn và có thể liên kết với sheet chính.
Cám ơn.
 

File đính kèm

  • lien ket sheet an.rar
    68.4 KB · Đọc: 105
Lần chỉnh sửa cuối:
Minh gui file yêu cầu, các bạn xem giúp nhé!!

Mình muốn khi Sheet chính (main) nhấn liên kết với Sheet ẩn nào (phụ 1), thì sheet đó hiện lên
và có 1 nút trở về sheet chính,( khi nhấn nút này thì sẽ trở về sheet chính và sheet ẩn ( phụ 1) lại tiếp tục bị ẩn.)

Tức là mặc nhiên trên màn hình chỉ thấy 1 sheet chính, các sheet còn lại vẫn tồn tại nhưng bị ẩn và có thể liên kết với sheet chính.
Cám ơn.
với yêu cầu của bạn theo mình nghĩ chỉ cần tạo liên kết HyperLink sau đó chọn ẩn Sheet Tab đi là được
 
Bạn thử đoạn code này xem (tầm trên diễn đàn này) - Sheet chính là "MUCLUC"
Mã:
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
      ViTri = InStr(1, Target.Value, "!", vbTextCompare)
      TenSheet = Left(Target.Value, ViTri - 1)
      If Right(TenSheet, 1) = "'" Then
          TenSheet = Left(TenSheet, Len(TenSheet) - 1)
      End If
      Sheets(TenSheet).Visible = True
      Sheets(TenSheet).Select
  End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
1. Mình có 1 Sheet 1 không ẩn, có 1 nút trên đó, khi nhấn vào sẽ làm Sheet 2 ( đang bị ẩn) hiện ra chuyển sang thao tác trên sheet 2.
2. Sau khi thao tác xong ở sheet 2, có 1 nút khi nhấn vào sẽ chuyển laị sheet 1 và sheet 2 sẽ bị ẩn lại như trước.


Xin các bạn giúp đở.
 
Lần chỉnh sửa cuối:
1. Nút trên Sheet1 viết sự kiện OnClick
Mã:
    Sheet2.Visible = xlSheetVisible
    Sheet2.Activate
2. Nút trên Sheet2 viết sự kiện OnClick
Mã:
    Sheet1.Activate
    Sheet2.Visible = xlSheetHidden
 
Mình đã làm được cho 2 sheet rồi, nhưng khi liên kết nhiều sheet hơn thì bị lỗi.

Bạn làm dùm 10 sheet nhé.
 
Lần chỉnh sửa cuối:
1. Nút trên Sheet1 viết sự kiện OnClick
Mã:
    Sheet2.Visible = xlSheetVisible
    Sheet2.Activate
2. Nút trên Sheet2 viết sự kiện OnClick
Mã:
    Sheet1.Activate
    Sheet2.Visible = xlSheetHidden
Mình đang rất cần cái này nhưng không biết gì về VBA - Macro cả. Nhờ bạn có thể làm cụ thể hơn và ẩn được nhiều sheet hơn nhé. Cảm ơn trước!
 
Mình đang rất cần cái này nhưng không biết gì về VBA - Macro cả. Nhờ bạn có thể làm cụ thể hơn và ẩn được nhiều sheet hơn nhé. Cảm ơn trước!
Có nhiều cách thực hiện yêu cầu trên.
Các bạn xem thử file sau là 1 ví dụ. File này thì đặt code trên mọi sheet phụ (Worksheet_Deactivate). Nhưng các bạn có thể chỉ cần đặt code trên 1 Sheet chính duy nhất bằng cách bỏ Worksheet_Deactivate và thay vào đó các bạn sử dụng Worksheet_Activate trên Sheet chính ....

TDN
 

File đính kèm

  • lien ket sheet an_GPE.zip
    74.3 KB · Đọc: 107
Mình đang rất cần cái này nhưng không biết gì về VBA - Macro cả. Nhờ bạn có thể làm cụ thể hơn và ẩn được nhiều sheet hơn nhé. Cảm ơn trước!

Bạn thử xem sao nhé :

PHP:
Private Sub Worksheet_Activate()
    Dim Ws As Worksheet
    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Name <> Sheet1.Name Then Ws.Visible = xlSheetVeryHidden
    Next
End Sub
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Range("B2:B4")) Is Nothing Then
        Dim Ws As Worksheet
        For Each Ws In ThisWorkbook.Worksheets
            If Ws.Name = Target.Value Then
                Ws.Visible = xlSheetVisible
                Ws.Activate
            End If
        Next
    End If
End Sub
File tham khảo

Chúc vui
 
Bạn thử đoạn code này xem (tầm trên diễn đàn này) - Sheet chính là "MUCLUC"
Mã:
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
      ViTri = InStr(1, Target.Value, "!", vbTextCompare)
      TenSheet = Left(Target.Value, ViTri - 1)
      If Right(TenSheet, 1) = "'" Then
          TenSheet = Left(TenSheet, Len(TenSheet) - 1)
      End If
      Sheets(TenSheet).Visible = True
      Sheets(TenSheet).Select
  End Sub
Bạn Hướng đẫn cách làm cụ thể đi mình k rành lắm
 
Có nhiều cách thực hiện yêu cầu trên.
Các bạn xem thử file sau là 1 ví dụ. File này thì đặt code trên mọi sheet phụ (Worksheet_Deactivate). Nhưng các bạn có thể chỉ cần đặt code trên 1 Sheet chính duy nhất bằng cách bỏ Worksheet_Deactivate và thay vào đó các bạn sử dụng Worksheet_Activate trên Sheet chính ....

TDN

Sao e down cái này về mà nó chỉ như file excel thông thường thôi nhỉ? Thấy mỗi cái phần bôi vàng và cái hình add vô. Hix!

Em chỉ biết mở macro ra thôi, còn ko hiểu những đoạn code kia copy paste vào đâu nữa :(. Xin chỉ giáo!
 
Web KT

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

Back
Top Bottom