Filter dữ liệu theo tên sheet (1 người xem)

Liên hệ QC

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

happyghostvn

Thành viên mới
Tham gia
23/4/12
Bài viết
21
Được thích
3
Xin chào mọi người,
Yêu cầu của mình là muốn filter dữ liệu theo tên của sheet tự động.
Ví dụ: mình có sheet "Nhat ky" có cột Serial number (1,2,3,4) làm chủ đạo. Các sheet con 1,2,3,4 nằm kế bên. Mỗi sheet con 1,2,3,4 có Button 1 để lọc dữ liệu ở sheet "Nhat ky". Mỗi khi click vào button 1, sheet "Nhat ky" sẽ tự động filter với serial number là tên của sheet đó. Cụ thể nếu ở sheet 1, bấm button 1, sheet "Nhat ky" se filter các dòng có Serial number là 1, nếu ở sheet 2 bấm button 2 thì sheet "Nhat ky" se filter serial number là 2.....

Mình đã làm được từng macro cho mỗi button 1 hay button 2 ở mỗi sheet con 1,2 nhưng nếu làm một macro chung cho tất cả các button thì vẫn chưa ra

Nhờ mọi người chỉ giúp. Xin cám ơn mọi người.

P/S: xin được lấy file của GPE111.xls trong phần trả lời "Tự động cập nhật thông tin từ sheet tổng hợp..." của bác @Ba_te để làm ví dụ.
 

File đính kèm

Làm macro cho từng sheets thì bạn chỉ cần duyệt qua từng sheet (khai báo sh as Worksheet, dùng vòng lặp for each sh in activeworkbook), activate sheets đó, tìm mối liên hệ giữa tên sheet và serial number để filter.
 
Làm macro cho từng sheets thì bạn chỉ cần duyệt qua từng sheet (khai báo sh as Worksheet, dùng vòng lặp for each sh in activeworkbook), activate sheets đó, tìm mối liên hệ giữa tên sheet và serial number để filter.

Hix... Cám ơn bạn nhưng mình hơi bị mù về macro, bạn có thể gợi ý luôn đoạn code được không ?
 
Hix... Cám ơn bạn nhưng mình hơi bị mù về macro, bạn có thể gợi ý luôn đoạn code được không ?
Hic! Xem lại file của bạn thì thấy cần gì phải code cho mệt hả bạn. Dù bạn có 100 sheet thì cứ theo cái Autofilter ở sheet Nhat ky mà tích vào thôi.
 
Hic! Xem lại file của bạn thì thấy cần gì phải code cho mệt hả bạn. Dù bạn có 100 sheet thì cứ theo cái Autofilter ở sheet Nhat ky mà tích vào thôi.

Uhm, thì nếu làm thủ công cơ bản như vậy thì đâu có gì đâu, tại mình muốn cho nó...hơi pro hơn tí nên phải vất cả một chút, ví dụ đang đứng ở sheet 100, muốn xem thống kê thì phải click lại tuốt phía đầu để autofil. Bởi thế, chỉ cần click chuột ở sheet 100 mà ra kết quả thì sẽ hay hơn rồi :d
 
Uhm, thì nếu làm thủ công cơ bản như vậy thì đâu có gì đâu, tại mình muốn cho nó...hơi pro hơn tí nên phải vất cả một chút, ví dụ đang đứng ở sheet 100, muốn xem thống kê thì phải click lại tuốt phía đầu để autofil. Bởi thế, chỉ cần click chuột ở sheet 100 mà ra kết quả thì sẽ hay hơn rồi :d
Nếu như thế thì bạn chỉ cần viết 1 code, cho nó vào 1 modul, rồi sau đó, mỗi sheet, CommandButon ở sheet đó gọi cái thủ tục ở Modul ra là được mà.
PHP:
Sub Filter_Nhatky()
Dim Cri As String    
    Cri = ActiveSheet.Name    
    Sheets("Nhat ky").Select    
    ActiveSheet.Range("$A$1:$D$5").AutoFilter Field:=2, Criteria1:=Cri
End Sub
 
Uhm, thì nếu làm thủ công cơ bản như vậy thì đâu có gì đâu, tại mình muốn cho nó...hơi pro hơn tí nên phải vất cả một chút, ví dụ đang đứng ở sheet 100, muốn xem thống kê thì phải click lại tuốt phía đầu để autofil. Bởi thế, chỉ cần click chuột ở sheet 100 mà ra kết quả thì sẽ hay hơn rồi :d
1 là muốn Pro, 2 là hổng sợ dung lượng file quá lớn,3 là muốn có hàng trăm cái nút... Híc!
Đàng nào cũng chỉ xem mỗi lần 1 sheet, sao lại phải tốn "nguyên liệu" đến hàng trăm sheet nhỉ? Như vậy sao gọi là Pro?
Xem thử file này,1 sheet thôi, muốn xem số nào thì nhập số đó vào ô B1, khỏi phải "chạy tới chạy lui".
Sheet Nhat ky cho dữ liệu đến 60.000 dòng luôn.
 

File đính kèm

1 là muốn Pro, 2 là hổng sợ dung lượng file quá lớn,3 là muốn có hàng trăm cái nút... Híc!
Đàng nào cũng chỉ xem mỗi lần 1 sheet, sao lại phải tốn "nguyên liệu" đến hàng trăm sheet nhỉ? Như vậy sao gọi là Pro?
Xem thử file này,1 sheet thôi, muốn xem số nào thì nhập số đó vào ô B1, khỏi phải "chạy tới chạy lui".
Sheet Nhat ky cho dữ liệu đến 60.000 dòng luôn.

Ý này của anh giống với ý ban đầu của anh vu_tuan_manh_linh, nhưng cái trường hợp mà em nêu ra là ví dụ mình đang tham khảo nội dung gì đó ở Sheet 50, nếu muốn xem "nhat ky" thì phải quay lại sheet "Nhat ky", rồi chọn đk để autofill, như thế thì nó hơi bị mất thời gian. Do đó, cái đoạn code kia vừa rút ngắn thời gian, vừa "biểu diễn" :D, tuy file phình ra 1 chút nhưng chắc cũng không ảnh hưởng gì nhiều.

P/S: em có gởi mail vào hộp thư gmail của anh để hỏi vấn đề về file GPE mà em đã xào nấu của anh nhưng chưa thành công lắm, anh có thời gian rảnh thì nghía qua giúp em nghen. Cám ơn anh
 
Nếu như thế thì bạn chỉ cần viết 1 code, cho nó vào 1 modul, rồi sau đó, mỗi sheet, CommandButon ở sheet đó gọi cái thủ tục ở Modul ra là được mà.
PHP:
Sub Filter_Nhatky()
Dim Cri As String    
    Cri = ActiveSheet.Name    
    Sheets("Nhat ky").Select    
    ActiveSheet.Range("$A$1:$D$5").AutoFilter Field:=2, Criteria1:=Cri
End Sub

Tìm thấy lối ra rồi, mình bị....bí chỗ khai báo Dim Cri as String và Cri = activesheet.name :D. Cám ơn anh nghen.
 
Web KT

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

Back
Top Bottom