Target.Address lấy giá trị sheet khác
Trong file đính kèm, mỗi khi bấm vào hình tròn màu đỏ sheet "View" để chọn 1 tỉnh thành thì dữ liệu B12:D25 sẽ TỰ ĐỘNG CẬP NHẬT theo dữ liệu sheet "Customer". Hiện tại mình đang dùng ô phụ L5 sheet "View" để cập nhật thủ công, không chuyên nghiệp và tốn thời gian.
Vì tập tin của bạn chứa dữ liệu tiếng nước ngoài nên tôi không biết cái gì là gì.
Bạn nên miêu tả cụ thể bằng 1 ví dụ. Vd. tôi nhấn nút đỏ của Bình định thì TextBox 26 sẽ hiện "BINH DINH". Tiếp theo bạn muốn kéo dữ liệu từ Customer sang View. Nhưng dựa trên tiêu chí nào? Tiêu chí "BINH DINH"? Nhưng người không biết ngôn ngữ "kia" làm sao biết được BINH DINH nó ở đâu để mà tìm? Hay là kéo từ data chứ không phải là kéo từ Customer?
Mà dù kéo từ sheet nào thì cũng dùng công thức được chứ nhỉ.
Mà thôi. Nếu bạn muốn người khác giúp thì giải thích cặn kẽ. Giả sử tôi chọn BINH DINH thì code phải làm những gì, cụ thể từng bước một: lấy cái gì trên cơ sở nào, xào nấu ra sao và theo tiêu chí nào v…v
Góp ý ngoài lề:
– không nên chèn hàng loạt shape ở dạng nút đỏ.
– không nên có hàng loạt sub Sub QuangTri, Sub ThuaThienHue …
Khi tạo bản đồ thì gán cho các shape những tên như QuangTri, ThuaThienHue … Lúc đó chỉ dùng 1 sub TINH gán (Assign macro) cho tất cả các shape. Trong sub TINH code sẽ xác định shape nào được nhấn từ đó có tên Tỉnh.
Bạn tạo bản đồ bằng cách nào vì tôi không thấy code tạo bản đồ? Tôi nghĩ là bạn chạy code 1 lần để tạo bản đồ rồi xóa code rồi. Nếu các shape trong data không cần nữa thì xóa đi cho nhẹ tập tin chứ nhỉ.
Vì Dashboard này để báo cáo cho các sếp nước ngoài xem nên mình mới dùng tiếng Trung.
Tại sheet View, hiện tại khi nhấn nút đỏ các tỉnh thì chỉ có dữ liệu của các biểu đồ thay đổi, còn dữ liệu B12:D25 phải bấm chọn ô L5 mới hiện ra.
Yêu cầu của mình là: Khi nhấn nút đỏ của Bình Định thì TextBox 26 sẽ hiện "BINH DINH" và dữ liệu từ B12:D15 sheet View sẽ kéo dữ liệu từ A40:C43 sheet Customer bỏ qua. Thao tác tương tự lập lại cho các nút đỏ của tỉnh thành khác.
Bản đồ không có code nào hết nhé bạn.Bạn giúp mình chỉnh cái này luôn nhé:
Góp ý ngoài lề:
– không nên chèn hàng loạt shape ở dạng nút đỏ.
– không nên có hàng loạt sub Sub QuangTri, Sub ThuaThienHue …Khi tạo bản đồ thì gán cho các shape những tên như QuangTri, ThuaThienHue … Lúc đó chỉ dùng 1 sub TINH gán (Assign macro) cho tất cả các shape. Trong sub TINH code sẽ xác định shape nào được nhấn từ đó có tên Tỉnh.
Tôi đã yêu cầu rất rõ. Nếu không hiểu thì không ai giúp được.
Yêu cầu của mình là: Khi nhấn nút đỏ của Bình Định thì TextBox 26 sẽ hiện "BINH DINH" và dữ liệu từ B12:D15 sheet View sẽ kéo dữ liệu từ A40:C43 sheet Customer bỏ qua.
Cụ thể là thế nào nếu tôi nhấn BINH DINH? Căn cứ vào đâu, dựa trên cái gì, để lấy từ đâu. Hãy liệt kê tỉ mỉ tất cả các bước "B12: D15 sheet View sẽ kéo dữ liệu từ A40:C43 sheet Customer ". Tôi không muốn bỏ công ra dò xem bạn làm như thế nào khi chính bạn có thể nói qua.
Thì bản thân tôi cũng nói là không có code tạo bản đồ. Vì thế tôi hỏi bạn đã tạo ra bằng cách nào. Từ các shape bên sheet data? Muốn gộp các phần sau thì phải đặt tên cho các shape tỉnh ngay trong quá trình tạo bản đồ. Vì thế tôi hỏi. Nếu bạn muốn tôi có thể tạo cho bạn bản đồ vì tôi có các tọa độ của các tỉnh. Lúc đó không dùng các shape của bạn trong sheet data.
Bản phải giải thích chi tiết. Mà thực ra cũng không bắt buộc. Tùy bạn chọn thôi. Nói sao cho người khác hiểu.
Sheet View dòng code như dưới:
[I]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$L&$5" Then TR End Sub -------------------------------------------------------------------- Sub TR() Application.ScreenUpdating = False Sheets("View").Select Range("A3:E65536").Clear Sheets("Customer").Select Range("A3.D65536").AdvancedFilter _ xlFilterCopy, [F1.F2], Sheets("View").[B11] Sheets("View").Select Range("E:E").Select Selection.EntireColumn.Hidden = True Range("B12:D25").ShrinkToFit = True Application.ScreenUpdating = True End Sub[/I]Vị trí L5 trong đoạn code If Target.Address = "$L&$5" Then TR nếu lấy từ địa chỉ F2 sheet Customer thì chỉnh thành đoạn code thế nào?
Vấn đề của bạn mà bạn không thể mô tả từ A tới Z? Đừng mô tả từ H đến N.
Tôi mô tả từ A tới Z theo cách hiểu của tôi. Đúng ý thì tốt, ngược lại thì thôi.
"Khi nhấn mỗi nút đỏ được gán cho một tỉnh cụ thể thì code thực hiện các bước: nhập tên tỉnh hiện hành vào X3,X10,X17,X19,X21,X23,X25,X27,X29,X31,X33 -> nhập tên tỉnh vào TextBox 26 -> nhập tên tỉnh bằng tiếng Trung vào data!T2 -> nhập data!T2 vào TextBox 168 -> lọc Customer!A: D theo cột D – cột province với điều kiện là data!T2 (tên tỉnh bằng tiếng Trung)"
Tôi hướng dẫn cho mô tả ở trên.
1. Trước hết là code
– xóa code trong sheet View
– xóa toàn bộ code trong Module1 và thay bằng
Sub Overview()
Sheets("data").Range("X3,X10,X17,X19,X21,X23,X25,X27,X29,X31,X33") = "Overview"
ActiveSheet.Shapes.Range(Array("TextBox 26")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "OVERVIEW"
End Sub
Sub write_province()
Dim province As String
province = Application.Caller
Sheets("data").Range("X3,X10,X17,X19,X21,X23,X25,X27,X29,X31,X33") = province
ActiveSheet.Shapes("TextBox 26").TextFrame2.TextRange.Characters.Text = province
filter_data Worksheets("data").Range("T2").Value
End Sub
Sub filter_data(ByVal province As String)
Dim lastRow As Long, r As Long, c As Long, count As Long, data()
With ThisWorkbook.Worksheets("View")
lastRow = .Cells(Rows.count, "E").End(xlUp).Row
If lastRow > 11 Then .Range("B12:E" & lastRow).ClearContents
End With
With ThisWorkbook.Worksheets("Customer")
lastRow = .Cells(Rows.count, "B").End(xlUp).Row
If lastRow < 4 Then Exit Sub
data = .Range("A4:D" & lastRow).Value
End With
For r = 1 To UBound(data)
If data(r, 4) = province Then
count = count + 1
For c = 1 To 4
data(count, c) = data(r, c)
Next c
End If
Next r
If count Then ThisWorkbook.Worksheets("View").Range("B12").Resize(count, 4).Value = data
End Sub
2. Chỉnh sửa sheet
– xóa Customer!F1:F2
– xóa View!O3
– phải chuột trên nút đỏ của Quanh Tri -> trong Name Box ở bên trái của thanh công thức sửa thành Quang Tri -> Với các nút đỏ khác (chỉ các nút đỏ đi với các tỉnh) làm tương tự và nhập tỉnh thích hợp với từng nút. Các tên tỉnh phải đúng như các tên có trong cột data!B
– phải chuột trên nút đỏ của Quanh Tri -> chọn Assign Macro -> chọn write_province. Với các nút đỏ khác (chỉ các nút đỏ đi với các tỉnh) làm tương tự và cũng chọn write_province
www.giaiphapexcel.com/diendan/threads/target-address-l%E1%BA%A5y-gi%C3%A1-tr%E1%BB%8B-sheet-kh%C3%A1c.140534/
Thiết kế Tổng đãi ngộ (Total Rewards) theo khung SHRM
Khóa học “Thiết kế Tổng phần thưởng (Total Reward) chuẩn khung SHRM” giúp bạn nắm vững toàn bộ hệ thống đãi ngộ theo chuẩn...
Xem khóa học
Bình luận