Cách in hàng loạt theo sheet dữ liệu trong excel

Qua hai bài học về ‘Tự động cập nhật dữ liệu với công cụ Spin Button‘ và ‘Quản lý công cụ Spin Button trong VBA‘ chúng ta đã có thể biết được cách sử dụng công cụ Spin button để cập nhật dữ liệu trong mẫu Phiếu xuất kho. Một yêu cầu có thể gặp phải là chúng ta cần lưu trữ các phiếu đó, dưới dạng từng phiếu một theo các hình thức:

  • In ra giấy (chức năng in hàng loạt)
  • Xuất ra bản mềm (file PDF, file Excel…)

Trong bài học này chúng ta cùng tìm hiểu cách xây dựng lệnh Trích xuất dữ liệu hàng loạt ra file PDF theo mỗi đối tượng, cụ thể ở đây là mỗi Phiếu Xuất kho.

  • Xác định trình tự thực hiện
  • Câu lệnh VBA trích xuất dữ liệu

Xác định trình tự thực hiện

Đây là việc mô tả lại những việc cần phải làm, từng bước thực hiện và tương tác với Excel ra sao. Việc diễn đạt tốt trình tự thực hiện sẽ giúp chúng ta dễ dàng viết lệnh trong VBA và tránh các lỗi có thể xảy ra. Bước 1: Xác định các đối tượng Ở đây chúng ta có 2 đối tượng: Dòng cuối của bảng kê và vùng dữ liệu cần trích xuất

  • Dòng cuối bảng kê:  dòng cuối được xác định bằng câu lệnh tìm dòng cuối trong VBA
  • Vùng dữ liệu cần trích xuất: trong mục này chúng ta giới hạn phạm vi dữ liệu cần trích xuất (nội dung này thiết lập trong phần Page Setup > Thẻ Sheet > Mục Print area)

Cách in hàng loạt theo sheet dữ liệu trong excel
Bước 2: Xác định đường dẫn tới nơi lưu kết quả trích xuất Trong bước này chúng ta cần biện luận các trường hợp:

  • Chọn chính xác đường dẫn tới nơi lưu kết quả => Chọn tới đường dẫn đó
  • Chưa chọn chính xác đường dẫn => Thông báo lỗi và yêu cầu chọn lại hoặc hủy bỏ câu lệnh.

Bước 3: Viết tiếp câu lệnh trong trường hợp chọn đúng đường dẫn Bước này cũng xảy ra một số trường hợp như sau:

  • Nếu kết quả cần trích xuất đã có hoặc trùng tên => Thông báo cho người sử dụng biết để xử lý: Có ghi đè lên file đó hay không
  • Trường hợp nếu ghi đè không được vì file đó không cho phép ghi đè => Thông báo cho người sử dụng biết để xử lý.
  • Trường hợp kết quả cần trích xuất chưa có sẵn => Thực hiện việc trích xuất.

Việc này sẽ được thực hiện khi kiểm tra từng kết quả cần trích xuất => Do đó phải thực hiện theo 1 vòng lặp cho từng đối tượng số phiếu.

Câu lệnh VBA trích xuất dữ liệu

Trong đoạn code trên, mình đã ghi chú rất cụ thể nội dung từng đoạn code để các bạn có thể dựa vào đó đọc, hiểu nội dung từng đoạn. Câu lệnh viết trong VBA có thể dài và hơi khó đọc, nhưng khi chúng ta đã xây dựng được trình tự từ trước đó thì việc kiểm soát lại câu lệnh VBA sẽ không khó nữa. Khi ứng dụng vào việc khác thì cần lưu ý tọa độ các vị trí để điều chỉnh cho khớp với đặc điểm dữ liệu trong việc đó. Cùng xem kết quả nào:

Cách in hàng loạt theo sheet dữ liệu trong excel
Tải về file mẫu tại đây: http://bit.ly/2DjhDYh VBA giúp ích rất nhiều trong công việc: Tự động hóa Excel, viết hàm tự tạo, giúp làm việc trong Excel dễ dàng hơn, chuyên nghiệp hơn, bổ sung thêm những điều mà Excel không có sẵn. Để tìm hiểu thêm nhiều kiến thức về VBA, mời bạn tham dự khóa học VBA101 – Tự động hóa Excel với lập trình VBA. Đây là khóa học rất hữu ích dành cho bạn. Hãy cùng khám phá nào

Tác giả: duongquan211287

· · ·

Cách in hàng loạt theo sheet dữ liệu trong excel

  • Chuyên mục:
  • Excel cơ bản

Việc lọc dữ liệu từ sheet này sang sheet khác là một việc thường gặp phải trong công việc. Việc này chính là việc lập báo cáo chi tiết dựa vào một số điều kiện lập báo cáo. Mục đích là lấy những nội dung thỏa mãn điều kiện trong bảng dữ liệu (nằm trên 1 sheet riêng) đưa sang báo cáo chi tiết (nằm trên 1 sheet riêng). Trong Excel việc này được thực hiện một cách khá đơn giản với công cụ Advanced Filter (bộ lọc nâng cao). Sau đây chúng ta cùng tìm hiểu cách lọc dữ liệu sang sheet khác bằng Advanced Filter trong Excel nhé:

  • 1. Giới thiệu về công cụ Advanced Filter
    • a. Mở công cụ Advenced Filter
    • b. Chú ý
  • 2. Cách thực hiện
  • 3. Cách thiết lập điều kiện trong Advanced Filter

1. Giới thiệu về công cụ Advanced Filter

a. Mở công cụ Advenced Filter

Trong thẻ Data > Chọn Advanced Filter

Cách in hàng loạt theo sheet dữ liệu trong excel
Hộp thoại Advanced Filter như sau:
Cách in hàng loạt theo sheet dữ liệu trong excel
Trong đó

  • Action/ Filter the list, in-place: Lọc tại chính danh sách gốc
  • Action/ Copy to another location: Sao chép kết quả lọc được sang vị trí khác
  • List range: Vùng dữ liệu cần lọc
  • Criteria range: Vùng điều kiện lọc
  • Copy to: Nơi đặt kết quả lọc (khi chọn sao chép kết quả sang vị trí khác)
  • Unique records only: Chỉ lấy các giá trị không trùng nhau (xuất hiện 1 lần)

b. Chú ý

  • Như vậy muốn lọc dữ liệu từ sheet này sang sheet khác chúng ta bắt buộc phải chọn Copy to another location khi thực hiện Advanced Filter.
  • Nơi đặt kết quả lọc (copy to) phải tương ứng với sheet chứa vùng điều kiện (criteria range), tức là trong cùng 1 sheet.

2. Cách thực hiện

Xét ví dụ sau: Cho bảng dữ liệu tại sheet Data gồm:

Cách in hàng loạt theo sheet dữ liệu trong excel
Yêu cầu: Lọc dữ liệu bán hàng của nhân viên Trang sang Sheet mới

  • Bước 1: Tạo mới 1 sheet, lấy tên là “Report01”
  • Bước 2: Thiết lập điều kiện như sau

Cách in hàng loạt theo sheet dữ liệu trong excel

  • Bước 3: Thực hiện lọc bằng công cụ Advanced Filter như sau

Cách in hàng loạt theo sheet dữ liệu trong excel

List range: Tại sheet Data, vùng A1:D11 (Xem ở đề bài)

Criteria range: Tại sheet Report01, vùng A1:A2

Copy to: Vị trí đặt kết quả tại Sheet Report01, ô A4

Kết quả thu được tại Report01

Cách in hàng loạt theo sheet dữ liệu trong excel
Như vậy chúng ta đã có thể lấy được kết quả lọc dữ liệu từ sheet Data để đưa sang sheet Report bằng cách sử dụng Advanced Filter.

3. Cách thiết lập điều kiện trong Advanced Filter

Vùng điều kiện trong Advanced Filter bắt buộc phải tuân theo nguyên tắc sau:

  • Bao gồm tên tiêu đề của trường dữ liệu có liên quan + nội dung điều kiện trong trường đó
  • Mối quan hệ giữa các điều kiện được viết như sau:

Mối quan hệ phụ thuộc / Điều kiện dạng Và: Tất cả các điều kiện đều thỏa mãn

Cách in hàng loạt theo sheet dữ liệu trong excel

  • Mỗi điều kiện sẽ kèm theo 1 tiêu đề. Nếu trong cùng 1 cột tiêu đề thì lặp lại cột tiêu đề đó.
  • Các điều kiện được đặt trên cùng 1 hàng

Mối quan hệ bổ sung / Điều kiện dạng Hoặc: Chỉ cần 1 trong những điều kiện được thỏa mãn

Cách in hàng loạt theo sheet dữ liệu trong excel

  • Mỗi điều kiện sẽ kém theo 1 tiêu đề. Nếu trong cùng 1 cột tiêu đề thì đặt ở dòng phía dưới trên cùng cột tiêu đề đó
  • Các điều kiện được đặt so le nhau, không nằm cùng 1 hàng.

Trên đây là những nội dung chính về việc sử dụng Advanced Filter trong Excel để lọc / trích xuất dữ liệu từ sheet này sang sheet khác. Việc sử dụng Advanced Filter khá đơn giản, chỉ cần chú ý về cách xây dựng vùng điều kiện và vị trí đặt vùng điều kiện. Ngoài ra Học Excel Online xin giới thiệu với các bạn Khóa học Excel từ cơ bản tới nâng cao dành cho người đi làm [Đăng ký]. Đây là 1 khóa học rất đầy đủ kiến thức và bổ trợ rất tuyệt vời cho bạn trong việc làm quen với Excel, sử dụng các công cụ, các hàm trong Excel để đáp ứng yêu cầu công việc tổ chức, quản lý dữ liệu và lập báo cáo trên Excel.


  • Tags: Bộ lọc Nâng cao Excel

Tác giả: duongquan211287

· · ·

Khóa học mới xuất bản

  • Tất cả
  • Python
  • SQL
  • VBA