Giúp Lọc dữ liệu với pivot table bằng VBA

Liên hệ QC

Cu Tồ

Tìm đến kiến thức! ꧁༺ Cu Tồ ༻꧂
Tham gia
6/5/20
Bài viết
735
Được thích
347
Chào các bác anh chị trong diễn đàn!
Em có một ví dụ về lọc dữ liệu với Pivot table bằng VBA.lọc kết quả theo điều kiện và kết quả là tổng ạ.phía dưới là file đính kèm và mô tả mong các bác giúp đỡ!
trong file phần dữ liệu em có sử dụng tiếng việt có dấu cái này nếu không thích hợp có thể bỏ dấu đi được ạ
 

File đính kèm

  • test pivottable.xlsx
    14.1 KB · Đọc: 22
Lần chỉnh sửa cuối:
Vâng cũng không phải là em chỉ làm chơi để lên hỏi mà em chưa xây dựng được bản thật,vì em đang tìm hiểu phần này nếu xong thì e mới bắt đầu làm hoàn chỉnh,vì theo hướng bản mà e xây dựng thì sẽ lọc dữ liệu ra như thế
Nếu muốn được hỗ trợ nhanh thì nên dùng MS Office thay vì dùng WPS Office.
 
Upvote 0
e có dùng ms office,nhưng code hôm qua bác viết không hiểu sao office 2010 của e lại báo lỗi không chạy,hình như chỉ chạy từ bản 2016 trở lên thì phải
Trên Excel 2010 báo lỗi như thế nào bạn? Vì code trên có thể dùng được từ phiên bản 2007.
 
Upvote 0
Trên Excel 2010 báo lỗi như thế nào bạn? Vì code trên có thể dùng được từ phiên bản 2007.
1592535270378.png
lỗi như trên bác ạ,hay do bản của e cài thiếu cái gì ạ?bác cho e hỏi thêm là nếu dùng phương án này thì với dữ liệu với tầm 10k dòng thì code chạy ổn không bác?
 
Upvote 0
View attachment 239515
lỗi như trên bác ạ,hay do bản của e cài thiếu cái gì ạ?bác cho e hỏi thêm là nếu dùng phương án này thì với dữ liệu với tầm 10k dòng thì code chạy ổn không bác?
Bạn giúp tôi vào Tools\References xem coi có những cái sau không nhé.

1592535867472.png

À mà cùng 1 máy của bạn có cả 2 phiên bản 2010 và 2016? Hay là trên các máy khác nhau?
 
Upvote 0
Upvote 0
View attachment 239519
có này bác ơi,cùng 1 máy bác ạ, wps và office 2010 báo lỗi,còn 2016 thì chạy phà phà bác ạ
Vậy giúp tôi chọn cái 2.6 hoặc 1 trong số đó và thử chạy code sau nhé.

Mã:
Sub LocDL_HLMT()
    Dim Cn As New ADODB.Connection
    With Cn
        .Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No""")
        Sheet2.Range("B29").CopyFromRecordset .Execute("Select F1,Sum(F3) from [SoLieu$] where F2 In (Select F1 from [PhanTich$] where F1 is not null) group by F1")
        Sheet2.Range("F29").CopyFromRecordset .Execute("Select F1,Sum(F4) from [SoLieu$] where F2 In (Select F5 from [PhanTich$] where F5 is not null) group by F1")
        Sheet2.Range("J29").CopyFromRecordset .Execute("Select F1,Sum(F3) from [SoLieu$] where F2 In (Select F9 from [PhanTich$] where F9 is not null) group by F1")
        Sheet2.Range("N29").CopyFromRecordset .Execute("Select F1,Sum(F3) from [SoLieu$] where F2 In (Select F13 from [PhanTich$] where F13 is not null) group by F1")
    End With
End Sub
 
Upvote 0
Vậy giúp tôi chọn cái 2.6 hoặc 1 trong số đó và thử chạy code sau nhé.

Mã:
Sub LocDL_HLMT()
    Dim Cn As New ADODB.Connection
    With Cn
        .Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No""")
        Sheet2.Range("B29").CopyFromRecordset .Execute("Select F1,Sum(F3) from [SoLieu$] where F2 In (Select F1 from [PhanTich$] where F1 is not null) group by F1")
        Sheet2.Range("F29").CopyFromRecordset .Execute("Select F1,Sum(F4) from [SoLieu$] where F2 In (Select F5 from [PhanTich$] where F5 is not null) group by F1")
        Sheet2.Range("J29").CopyFromRecordset .Execute("Select F1,Sum(F3) from [SoLieu$] where F2 In (Select F9 from [PhanTich$] where F9 is not null) group by F1")
        Sheet2.Range("N29").CopyFromRecordset .Execute("Select F1,Sum(F3) from [SoLieu$] where F2 In (Select F13 from [PhanTich$] where F13 is not null) group by F1")
    End With
End Sub
e đã thử rồi bác ạ,chọn 2.6 và sau chọn lại 6.1 chạy code thì excel tự đóng luôn bác ạ?cảm ơn bác giúp đỡ,phương thức thứ hai này em cũng chưa quen lắm nên hơi mơ hồ,để e đi tìm hiểu thêm phần pivot table xem như thế nào à,chữ như thế này tốn công bác lắm
 
Upvote 0
Em có dùng record macro và chỉnh sửa một ít được như file ở dưới,mong hai bác giúp e làm sao cho code ngắn gọn hơn được không ạ? và có thế đưa điều kiện lọc là lấy ở bảng tính để khi thêm mục lọc và điều kiện lọc thì thuận tiện hơn,và các mục lóc điều như nhau chỉ khác ở phần điều kiện lọc và vùng paste dữ liệu thì có thể dùng vòng lặp được không ạ?
 

File đính kèm

  • test.xlsm
    3.5 MB · Đọc: 7
Upvote 0
Web KT

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

Back
Top Bottom