Trong công việc, chúng ta có từng gặp gỡ phải những thắc mắc này không: Lập báo cáo chi tiết như thế nào? Làm gắng nào để đem dữ liệu xuất phát điểm từ 1 bảng theo những yêu cầu nhất định? bí quyết trích xuất tài liệu theo điều kiện để đưa qua 1 bảng khác?
Bài viết sau đây sẽ giúp đỡ bạn trả lời những câu hỏi đó. Đồng thời bạn cũng có thể khám phá ra một bí quyết làm mới rất thú vị khi áp dụng VBA vào vấn đề lọc tài liệu vào report chi tiết.

Bạn đang xem: Dùng macro lọc dữ liệu bảng trong excel

* chúng ta có yêu ước sau: nhờ vào bảng dưới đây, hãy rước dữ liệu ở Bảng chi tiết dựa theo điều kiện thay đổi ở các ô trường đoản cú I2:I4 (Thời gian và nhà cung cấp)
*
*
*
*
*
*
*
*
*
*
range(“H6:K100”).Clear
Tải về tư liệu kèm theo bài học
PHẦN MỀM TRUNG TÂM ĐÀO TẠO TIN TỨC LIÊN HỆ THIẾT KẾ ỨNG DỤNG
Trong thực tế các bước văn phòng, chúng ta nhân viên thường cần làm các loại report đặc thù theo yêu cầu của doanh nghiệp. Ngoài việc dùng công thức Excel thuần túy, đa số người đã khám phá về VBA vào excel để thi công những report đơn giản, hiệu quả, giảm dung tích file cùng tăng tốc độ xử lý công thức, dữ liệu trong file. Hôm nay mình sẽ hướng dẫn các bạn làm một báo cáo động có phối hợp VBA và một công cụ new là A-Tools. Mục đích là tạo thành được báo cáo động, lọc theo một điều kiện "Mã hàng" tuy thế sẽ "lọc theo một hoặc các mã hàng" .
Giả sử ta có vấn đề như sau: gồm một bảng dữ liệu gồm các cột, trong số đó có cột "Mã hàng". Vậy yêu thương cầu việc là: Tôi ước ao xem report theo một mã mặt hàng hoặc nhiều mã hàng, lúc tôi chọn một mã hàng thì lọc toàn cục dữ liệu của mã sản phẩm đấy, khi chọn 2 thì lọc cục bộ dữ liệu của 2 mã hàng,... Tương tự như cho n mã hàng.
Sheet Setup: để lưu các tùy chỉnh chung, ở đây chỉ có 1 sheet report nên chỉ việc lưu bảng tài liệu điệu kiện gồm toàn bộ mã và tên hàng. Tôi tên vùng tài liệu là DMCT_DT chẳng hạn, các chúng ta cũng có thể đặt tên theo phong cách hiểu hoặc cấu tạo dữ liệu của chính mình (note: tên tiếng việt viết liền không giống, phân làn nhau vị dấu gạch men dưới).
*

Sheet
Data:
Là nơi lưu trữ cơ sở dữ liệu của những bạn, lúc này mình đang kiến tạo theo cấu tạo "Sheetdata" vừa là chỗ nhập liệu, vừa tàng trữ dữ liệu. Sau này chúng ta có thể xem thêm về VBA thiết kế Form nhập liệu riêng, sau khi lưu đã vào "Sheetdata", tại đây vùng tài liệu mình để ten là DATA.
*

Sheet
Report:
Là sheet giúp xem báo cáo, cấu trúc báo cáo thì mình xây đắp như hình dưới đây, gồm 1 Shap để chọn mã hàng, Shap này sẽ hiển thị form chọn danh mục mã hàng theo ý. Những dòng title mình xây đắp bằng giờ việt, tất cả dòng tổng số ở phía dưới, lúc lập phương pháp chỉ việc lập từ chiếc thứ 2.
*

Các bạn vào môi trường xung quanh lập trình VBA (ALT+F11), vào thực đơn Insert ->chọn User
Form, trong Form chúng ta thiết kế theo cấu tạo tùy ý, còn trong bài xích toán của bản thân thì mình kiến tạo hình dưới đây, ở đây mình dùng tất cả "Check
Book" (để chọn tất cả), "List
Book" (để mang danh sách) và những "Button" (để thực hiện lệnh).

Xem thêm: Cách viết lời chúc mừng sinh nhật ý nghĩa nhất dành cho mọi đối tượng

*

Để nạp list vào "Listbox", các bạn chọn vào "Listbox", ở bên trái phần "Propties", chúng ta vào "Categorized", tại đoạn "Row
Source", chúng ta gõ tên bảng đựng mã và tên mà họ đã để trong "Sheet
Setup". Ở đây chúng ta chú ý trường "Column
Count": số cột trong bảng mà các bạn cần hiện trên "List
Book", bây giờ mình nhằm là 2 thì gồm cả mã cùng tên thuộc hiển thị.
*

Sau khi tùy chỉnh cấu hình xong, chúng ta double click vào Button "Chọn" rồi copy code dưới đây vào trong giấy tờ thủ tục bạn vừa tạo.
Các bạn để ý dòng : This
Workbook.Sheets("Report").Range("C1").Value = s, chữ "Report" chính là tên sheet report mình sẽ thiết lập.
*

Tương từ với nút "Đóng", chúng ta chỉ buộc phải gõ vào dòng lệnh "Unload Me" mục tiêu để thoát form như hình trên.
Bước 3: Sau khi hoàn thành công việc trên, chúng ta Insert một module (vào Insert -> Module) để Show User
Form như hình dướ đây:
*

Các chúng ta chuột đề nghị vào "Shap", chọn tới phần "Assign Macro".
*

Tiếp theo chúng ta chọn vào macro "Runform" và chọn Ok.
*

WHERE DATA.MA_VLSPHH in " và "("" &C1 &")","HR=NO;INSERT=YES;")
*