Lập Báo Cáo động Kết Hợp VBA Và A-Tools

/ Thủ thuật Excel / Lập báo cáo động kết hợp VBA và A-Tools

Lập báo cáo động kết hợp VBA và A-Tools

Trong thực tế công việc văn phòng, các bạn nhân viên thường phải làm nhiều loại báo cáo đặc thù theo nhu cầu của doanh nghiệp. Ngoài việc dùng công thức Excel thuần túy, nhiều người đã tìm hiểu về VBA trong excel để thiết kế những báo cáo đơn giản, hiệu quả, giảm dung lượng file và 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ó kết hợp VBA và một công cụ mới là A-Tools. Mục đích là tạo được báo cáo động, lọc theo một điều kiện "Mã hàng" nhưng sẽ "lọc theo một hoặc nhiều mã hàng" . Giả sử ta có bài toán như sau: Có một bảng dữ liệu gồm nhiều cột, trong đó có cột "Mã hàng". Vậy yêu cầu bài toán là: Tôi muốn xem báo cáo theo một mã hàng hoặc nhiều mã hàng, khi tôi chọn một mã hàng thì lọc toàn bộ dữ liệu của mã hàng đấy, khi chọn 2 thì lọc toàn bộ dữ liệu của 2 mã hàng,... tương tự cho n mã hàng. Để giải quyết bài toán trên chúng ta làm như sau: Bước 1: Thiết kế mẫu file Excel gồm 3 sheet như sau: Sheet Setup: để lưu các thiết lập chung, ở đây chỉ có 1 sheet báo cáo nên chỉ cần lưu bảng dữ liệu điệu kiện gồm tất cả mã và tên hàng. Tôi tên vùng dữ liệu là DMCT_DT chẳng hạn, các bạn có thể đặt tên theo cách hiểu hoặc cấu trúc dữ liệu của mình (note: tên tiếng việt viết liền không giống, ngăn cách nhau bởi dấu gạch dưới). userfomsetup.jpg SheetData: Là nơi lưu trữ cơ sở dữ liệu của các bạn, hiện tại mình đang thiết kế theo cấu trúc "Sheetdata" vừa là nơi nhập liệu, vừa lưu trữ dữ liệu. Sau này các bạn có thể tìm hiểu thêm về VBA thiết kế Form nhập liệu riêng, sau khi lưu sẽ vào "Sheetdata", ở đây vùng dữ liệu mình đặt ten là DATA. userfomsetupdata.jpg SheetReport: Là sheet để xem báo cáo, cấu trúc báo cáo thì mình thiết kế 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 ý. Các dòng tiêu đề mình thiết kế bằng tiếng việt, có dòng tổng cộng ở phía dưới, khi lập công thức chỉ việc lập từ dòng thứ 2. userfomreport-3.jpg Bước 2: Tiến hành thiết kế Form trong VBA. Các bạn vào môi trường lập trình VBA (ALT+F11), vào menu Insert ->chọn UserForm, trong Form các bạn thiết kế theo cấu trúc tùy ý, còn trong bài toán của mình thì mình thiết kế hình dưới đây, ở đây mình dùng gồm "CheckBook" (để chọn tất cả), "ListBook" (để lấy danh sách) và các "Button" (để thực hiện lệnh). userfomdesize-4.jpg Để nạp danh sách vào "Listbox", các bạn chọn vào "Listbox", ở bên trái phần "Propties", các bạn vào "Categorized", tại phần "RowSource", các bạn gõ tên bảng chứa mã và tên mà chúng ta đã đặt trong "SheetSetup". Ở đây các bạn chú ý trường "ColumnCount": số cột trong bảng mà các bạn cần hiển thị trên "ListBook", hiện tại mình để là 2 thì có cả mã và tên cùng hiển thị. userfomlistbox-5.jpg Sau khi thiết lập xong, các bạn double click vào Button "Chọn" rồi copy code dưới đây vào trong thủ tục bạn vừa tạo. Dim i As Long Dim s As String If cbAll.Value = True Then For i = 0 To lbDanhMuc.ListCount - 1 If s = "" Then s = lbDanhMuc.List(i, 0) Else s = s & "','" & lbDanhMuc.List(i, 0) End If Next i Else For i = 0 To lbDanhMuc.ListCount - 1 If lbDanhMuc.Selected(i) = True Then If s = "" Then s = lbDanhMuc.List(i, 0) Else s = s & "','" & lbDanhMuc.List(i, 0) End If End If Next i End If s = "'" & s & "'" ThisWorkbook.Sheets("Report").Range("C1").Value = s Unload Me Các bạn chú ý dòng : ThisWorkbook.Sheets("Report").Range("C1").Value = s, chữ "Report" chính là tên sheet báo cáo mình đã thiết lập. userfomcode-6.jpg Tương tự với nút "Đóng", các bạn chỉ cần gõ vào dòng lệnh "Unload Me" mục đích để thoát Form như hình trên. Bước 3: Sau khi hoàn thành các bước trên, các bạn Insert một module (vào Insert -> Module) để Show UserForm như hình dướ đây: userfomcodemodule-7.jpg Bước 4: Gán thủ tục Runform vào Shap đã thiết kế ở trong SheetReport như sau: Các bạn chuột phải vào "Shap", chọn tới phần "Assign Macro". userfomassigemacro-8.jpg Tiếp theo các bạn chọn vào macro "Runform" và chọn Ok. userfomchonmacro-9.jpg Bước 5: Các bạn lập công thức bằng SQL Buider (tìm hiểu các video về báo cáo động trong Excel và A-Tools) hoặc copy công thức dưới đây vào trong ô đầu tiên của bảng kết quả (ô D4). Để chạy được phần này, các bạn cài cho mình phần mềm A-Tools Free: Download Các bạn có thể tự tìm hiểu để tự gõ hoặc dùng chức năng SQL Builder để tạo câu lệnh, các bạn xem video hướng dẫn về công thức động tại đây: Link video =bs_Sql("SELECT DATA.* FROM DATA WHERE DATA.MA_VLSPHH in " & "('" &C1 &")","HR=NO;INSERT=YES;") userformSQL-10.jpg Sau khi copy công thức vào ô D3 xong, các bạn nhấn Enter để nhận kết quả, do chưa có điều kiện lọc nên kết quả sẽ hiển thị như bảng dưới đây. userformketqua-11.jpg Bước 6: Thay đổi điều kiện và nhận kết quả: Các bạn click vào "Chọn mã hàng", sẽ hiển thị Form mà mình đã thiết kế, các bạn tick chọn vào những mã hàng cần lọc (1 hoặc nhiều mã, để chọn tất cả các bạn tick vào chọn tất cả ở bên trên, nó sẽ ngầm định là chọn tất cả dù các mã hàng không tích trên Form). userformchondieukien1-12.jpg Sau khi chọn xong, các bạn click vào nút chọn để nhận kết quả: userformketqua1-13.jpg Tiếp tục các bạn chọn nhiều mã khác cũng bằng cách click vào "Chọn mã hàng" để chọn những mã theo điều kiện cần hiển thị. userformchondieukien2-14.jpg Sau đó các bạn click vào nút chọn để nhận kết quả: userformketqua2-15.jpg Các bạn tải file ví dụ về chạy thử tại đây: Link download file Đây là một bài toán cơ bản có kết hợp VBA và công thức tạo báo cáo động bằng A-Tools, sau khi các bạn tìm hiểu kỹ về cách làm báo cáo động bằng A-Tools kết hợp kiến thức VBA cơ bản, các bạn có thể thiết kế các file Excel nhanh gọn, đơn giản, giống như các phần mềm chuyên nghiệp trên Excel.

TIN LIÊN QUAN

10/12/2024 12:00:00 SA

Hướng dẫn lập trình với Table trong Excel Online Hướng dẫn lập trình với Table trong Excel Online

03/12/2024 12:00:00 SA

Hướng dẫn lập trình với Google Sheets và Excel Online bằng Excel VBA và Add-in A-Tools Phần 02 Hướng dẫn lập trình với Google Sheets và Excel Online bằng Excel VBA và Add-in A-Tools Phần 02

27/11/2024 12:00:00 SA

Hướng dẫn lập trình với Google Sheets và Excel Online bằng Excel VBA và Add-in A-Tools Phần 01 Hướng dẫn lập trình với Google Sheets và Excel Online bằng Excel VBA và Add-in A-Tools Phần 01

17/10/2024 12:00:00 SA

Lập trình liệt kê tổ hợp, chỉnh hợp lặp, chỉnh hợp không lặp với hàm API BS_COMBINLIST của Add-in A-Tools Lập trình liệt kê tổ hợp, chỉnh hợp lặp, chỉnh hợp không lặp với hàm API BS_COMBINLIST của Add-in A-Tools

06/09/2024 12:00:00 SA

Hướng dẫn đăng ký bản quyền phần mềm Add-in A-Tools Pro v10.x (2024) Hướng dẫn đăng ký bản quyền phần mềm Add-in A-Tools Pro v10.x (2024)

13/08/2024 12:00:00 SA

Tính năng mới Add-in A-Tools v10.0 Tính năng mới Add-in A-Tools v10.0

09/08/2024 12:00:00 SA

Đồng bộ dữ liệu từ Excel lên Google Sheets-Google Drive, Excel Online-OneDrive và DropBox Đồng bộ dữ liệu từ Excel lên Google Sheets-Google Drive, Excel Online-OneDrive và DropBox

08/08/2024 12:00:00 SA

Hướng dẫn đưa tập tin cài đặt vào danh sách ngoại lệ của Windows Defender trên Windows Hướng dẫn đưa tập tin cài đặt vào danh sách ngoại lệ của Windows Defender trên Windows

30/07/2024 12:00:00 SA

Hướng dẫn hàm BS_COMBINLIST Lấy cặp giá trị theo phương pháp tổ hợp và chỉnh hợp Hướng dẫn hàm BS_COMBINLIST Lấy cặp giá trị theo phương pháp tổ hợp và chỉnh hợp

31/07/2024 12:00:00 SA

Hướng dẫn hàm BS_CLOUD lấy dữ liệu từ Google Sheets và Excel Online về Excel Hướng dẫn hàm BS_CLOUD lấy dữ liệu từ Google Sheets và Excel Online về Excel

30/07/2024 12:00:00 SA

Hướng dẫn hàm BS_MATCHCALC Lấy mảng vị trí các phần tử mà tổng giá trị của nó là một số Hướng dẫn hàm BS_MATCHCALC Lấy mảng vị trí các phần tử mà tổng giá trị của nó là một số

29/07/2024 12:00:00 SA

Hướng dẫn hàm BS_SQL Tạo báo cáo động - chạy SQL trên Excel Hướng dẫn hàm BS_SQL Tạo báo cáo động - chạy SQL trên Excel

29/07/2024 12:00:00 SA

Hướng dẫn hàm BS_DSUM Tính tổng nhiều điều kiện trong CSDL Hướng dẫn hàm BS_DSUM Tính tổng nhiều điều kiện trong CSDL

29/07/2024 12:00:00 SA

Kết nối CSDL bên ngoài vào Excel qua DBKEY Kết nối CSDL bên ngoài vào Excel qua DBKEY

29/07/2024 12:00:00 SA

Hướng dẫn hàm BS_DLOOKUP Tìm kiếm nhiều điều kiện trong CSDL Hướng dẫn hàm BS_DLOOKUP Tìm kiếm nhiều điều kiện trong CSDL

28/07/2024 12:00:00 SA

Nguyên tắc tạo dữ liệu nguồn cho SQL trong Excel Nguyên tắc tạo dữ liệu nguồn cho SQL trong Excel

28/07/2024 12:00:00 SA

Hàm BS_ADDR Lấy địa chỉ tham chiếu Hàm BS_ADDR Lấy địa chỉ tham chiếu

28/07/2024 12:00:00 SA

Hướng dẫn hàm BS_SUMPRODUCTIFCOLOR Tổng của tích các mảng điều kiện theo màu sắc Hướng dẫn hàm BS_SUMPRODUCTIFCOLOR Tổng của tích các mảng điều kiện theo màu sắc

Từ khóa » Cách Thiết Kế Báo Cáo Trong Excel