Lớp học GPE tháng 10 - TPHCM: Conditional Formatting và Data Validation (tối 4, 6/10) | Excel cơ bản (tối 9, 11, 13/10) |
Thuần thục các hàm dò tìm (tối 10, 12/10) | Tất tần tật về PivotTable (tối 16, 18, 20/10) |
Tất tần tật về Filter và Advanced Filter (tối 23, 25/10) | Name động và biểu đồ (tối 24, 26, 28/10)

Đăng ký học Khởi đầu cùng Google Spreadsheet - 2 chủ nhật 1 và 8/10 - TPHCM

Đăng ký học Xây dựng ứng dụng Form bằng VBA - 2 chủ nhật 15 và 22/10 - TPHCM

Bài viết: Tự động làm mới dữ liệu cho PivotTable

Thảo luận trong 'Bài viết nổi bật và thông báo' bắt đầu bởi kyo, 3 Tháng một 2017.

  1. kyo

    kyo Nguyễn Khắc Duy Staff Member

    Tự động làm mới dữ liệu cho PivotTable


    Làm mới (refresh) dữ liệu là một trong những nhu cầu cần thiết khi sử dụng PivotTable vì khi dữ liệu bạn thay đổi, chỉ khi bạn refresh, ngoài ra PivotTable sẽ không tự động cập nhật giúp bạn dữ liệu mới. Và nhiều khi, bạn ước là có một cách nào đó để PivotTable tự động refresh dữ liệu.

    Tuy nhiên, không có một phép thuật nào xảy ra ở đây cả, vì PivotTable được thiết kế nguyên bản… không có chức năng tự động cập nhật dữ liệu mới.

    Do vậy, để cập nhật dữ liệu mới, bạn phải luôn tự làm bằng tay bằng cách bấm chuột phải vào PivotTable -> chọn Refresh.

    [​IMG]

    Cách thứ hai bạn có thể dùng đến, mang một chút tự động, đó là sử dụng chức năng tự động refresh mỗi khi mở file của PivotTable. Cách này trông có vẻ tốt, nhưng chỉ đến khi bạn tắt file và mở lại. Còn nếu bạn không thực hiện hành động trên, PivotTable của bạn cũng sẽ "đứng im" với dữ liệu cũ.

    Để thực hiện cách này, bạn có thể bấm chuột phải vào PivotTable -> PivotTable Options -> chọn thẻ Data -> chọn Refresh data when opening the file -> OK.

    [​IMG]

    Vì thực tế PiotTable không hỗ trợ, do đó, nếu bạn thật sự muốn PivotTable của bạn tự động refresh, bạn phải dùng VBA để can thiệp. Có rất nhiều cách để lập trình ra macro này, tùy theo tình huống bạn mong muốn. Tuy nhiên, với tình huống trong bài viết này, tôi sẽ chọn sự kiện Worksheet_Activate vì đa phần tất cả mọi người khi tạo PivotTable đều đặt PivotTable qua một sheet riêng, và do vậy, khi sử dụng sự kiện, dòng lệnh VBA của bạn sẽ tự kích hoạt mỗi khi bạn kích hoạt sheet này.

    Mã:
    Private Sub Worksheet_Activate()
       Dim pt As PivotTable
       For Each pt In Me.PivotTables
          pt.RefreshTable
       Next pt
    End Sub
    Chỉ cần bạn đặt dòng lệnh này vào đúng sheet chứa PivotTable, ngay lập tức mỗi khi kích hoạt, PivotTable của bạn sẽ tự động cập nhật toàn bộ. Chẳng hạn như tôi vừa thêm dòng Đà Nẵng vào dữ liệu, và ngay khi tôi bấm lại sheet PV04 của mình, lập tức PivotTable sẽ tự động cập nhật.

    [​IMG]

    [​IMG]

    Chúc bạn thành công!

    Một số bài viết có liên quan:
    1/ Dùng hàm REPT tạo biểu đồ % ngay trong cell
    2/ Filter một giá trị nhanh bằng phím nóng, dễ hơn tưởng tượng
    3/ Những cách tính ra ngày đầu tháng
    4/ Kết hợp Slicer và PivotChart, tại sao không?
    5/ Gõ ký tự và Filter
    6/ Một cách khác VLOOKUP từ phải sang trái đơn giản hơn
    7/ 5 lỗi phổ biến khi dùng VLOOKUP và cách khắc phục
    8/ Làm cách nào để xóa các dòng chẵn/lẻ?
    9/ Ctrl + Enter và ứng dụng trong việc loại bỏ dòng trống
    10/ Hãy cẩn thận với IFERROR
     
    Lần chỉnh sửa cuối: 28 Tháng tám 2017
  2. Thay

    Thay Thành viên thường trực

    code này được không ạ:
    Private Sub Worksheet_Activate()
    PivotTables(1).PivotCache.Refresh
    End Sub
     
  3. chetmea

    chetmea Thành viên mới

    bác kyo cho em hỏi trong trường hợp em làm PivotChart, tong đó phần pivottable em đề ở sheet thứ 2 tên là Defined data, còn phần chart em để rải rác ở các sheet từ sheet 3 đến sheet 9 thì phải Code ntn?
     
  4. step by step

    step by step Thành viên mới

    Nội dùng bài viết rất hữu ích, tks.
     

Chia sẻ trang này