Mọi việc đều có chung một công việc.

  • Thread starter luongvanluyen
  • Ngày gửi
L

luongvanluyen

Thành viên sơ cấp
2/9/05
27
0
0
HCM CITY
#1
Chào các bạn,Tôi thấy các bạn thường hay hỏi về VBA như:
_Làm thế nào để lọc dữ liệu từ một sheet này qua sheet kia?
_Làm thế nào để từ bảng chi tiết đưa ra bảng tổng hợp?
_Làm thế nào để tạo một bảng báo cáo tháng?
Vâng, và có rất nhiều các công việc đại loại như thế! Thế nên tôi muốn xin giới thiệu các bạn một nguyên tắc chung (có thể nói như vậy!) để thực hiện các yêu cầu trên.
Các bạn thấy đấy, các yêu cầu trên có chung một việc là: từ một "bảng chi tiết" ta đưa ra "một bảng tổng hợp".
Để đưa ra bảng tổng hợp chúng ta phải quét qua bảng chi tiết, lọc đưa qua bảng tổng hợp. Sau đó định dạng bảng báo cáo. Tóm lại các bạn có 3 công việc để làm như tôi đã nói ở trên.
_Việc quét dữ liệu: các bạn phải dùng vòng lập. Các bạn nên dùng vòng lập For Next nếu dữ liệu các bạn là một khối và đã được đặt tên.
_Việc lọc dữ liệu: Khi quét qua khối dữ liệu thì tùy theo yêu cầu đặt ra các bạn kiểm tra dữ liệu với yêu cầu đề ra và đưa dữ liệu qua vùng báo cáo.
Bước này tương đối dễ.
_Định dạng báo cáo: bước này dữ liệu (ví dụ như các hàng báo cáo đến đâu, Có bao nhiêu cột báo cáo,...) thì thường dựa vào bước 2 ở trên.
Chú ý: để cho các thao tác trên được nhanh, các bạn phải dùng các kỹ thuật tăng tốc như các thủ thuật đã được giới thiệu trên trang web này.
Application.ScreenUpdate=False
Application.Calculation=...
Đối với một bảng dữ liệu việc quét dứ liệu khối dữ liệu dựa vào một cột thì chúng ta có thể dùng
sKiemTra=Application.Worksheets("Test").cells(i,3)
Do White Len(Trim(sKiemTra))>0
'Các thao tác xuất dữ liệu sẽ đặt ở đây

i=i+1
sKiemTra=Application.Worksheets("Test").cells(i,3)

Loop

Sau đó công việc định dạng thông thường dựa vào biến i ở trên để xác định số hàng cần định dạng. Còn cột định dạng thông thường tùy theo loại báo các chúng ta đã biết cụ thể.

Vâng, đó là các bước chúng ta thường làm trong các thao tác trích lọc dữ liệu để tạo báo cáo.

Hy vọng bài viết này sẽ giúp một phần nào cho các bạn. Tôi hy vọng rằng nếu có dịp tôi sẽ đưa ra một bài cụ thể giống như bạn levanduyet đã đưa ra.

LVL
 
hieu1563

hieu1563

Thành viên sơ cấp
#2
luongvanluyen nói:
Chào các bạn,Tôi thấy các bạn thường hay hỏi về VBA như:
_Làm thế nào để lọc dữ liệu từ một sheet này qua sheet kia?
_Làm thế nào để từ bảng chi tiết đưa ra bảng tổng hợp?
_Làm thế nào để tạo một bảng báo cáo tháng?
Vâng, và có rất nhiều các công việc đại loại như thế! Thế nên tôi muốn xin giới thiệu các bạn một nguyên tắc chung (có thể nói như vậy!) để thực hiện các yêu cầu trên.
Các bạn thấy đấy, các yêu cầu trên có chung một việc là: từ một "bảng chi tiết" ta đưa ra "một bảng tổng hợp".
Để đưa ra bảng tổng hợp chúng ta phải quét qua bảng chi tiết, lọc đưa qua bảng tổng hợp. Sau đó định dạng bảng báo cáo. Tóm lại các bạn có 3 công việc để làm như tôi đã nói ở trên.
_Việc quét dữ liệu: các bạn phải dùng vòng lập. Các bạn nên dùng vòng lập For Next nếu dữ liệu các bạn là một khối và đã được đặt tên.
_Việc lọc dữ liệu: Khi quét qua khối dữ liệu thì tùy theo yêu cầu đặt ra các bạn kiểm tra dữ liệu với yêu cầu đề ra và đưa dữ liệu qua vùng báo cáo.
Bước này tương đối dễ.
_Định dạng báo cáo: bước này dữ liệu (ví dụ như các hàng báo cáo đến đâu, Có bao nhiêu cột báo cáo,...) thì thường dựa vào bước 2 ở trên.
Chú ý: để cho các thao tác trên được nhanh, các bạn phải dùng các kỹ thuật tăng tốc như các thủ thuật đã được giới thiệu trên trang web này.
Application.ScreenUpdate=False
Application.Calculation=...
Đối với một bảng dữ liệu việc quét dứ liệu khối dữ liệu dựa vào một cột thì chúng ta có thể dùng
sKiemTra=Application.Worksheets("Test").cells(i,3)
Do White Len(Trim(sKiemTra))>0
'Các thao tác xuất dữ liệu sẽ đặt ở đây

i=i+1
sKiemTra=Application.Worksheets("Test").cells(i,3)

Loop

Sau đó công việc định dạng thông thường dựa vào biến i ở trên để xác định số hàng cần định dạng. Còn cột định dạng thông thường tùy theo loại báo các chúng ta đã biết cụ thể.

Vâng, đó là các bước chúng ta thường làm trong các thao tác trích lọc dữ liệu để tạo báo cáo.

Hy vọng bài viết này sẽ giúp một phần nào cho các bạn. Tôi hy vọng rằng nếu có dịp tôi sẽ đưa ra một bài cụ thể giống như bạn levanduyet đã đưa ra.

LVL

Cảm ơn bạn đã nhiệt tình. Mình chỉ là dân Excel, không phải lập trình nên có chút trao đổi:
_Làm thế nào để lọc dữ liệu từ một sheet này qua sheet kia?

Trong excel có một công cụ rất mạnh, đó là Advance Filter, đây chính là cái bạn cần.
_Làm thế nào để từ bảng chi tiết đưa ra bảng tổng hợp?

Các công thức của Excel đủ mạnh để làm việc đó, VD như sumproduct
_Làm thế nào để tạo một bảng báo cáo tháng?

Đây cũng chỉ là một dạng báo cáo tổng hợp với điều kiện đặc trưng là thời gian (cộng thêm các điều kiện khác nữa). vì vậy dùng sumproduct thì có thể làm được.

Để tự động thì ta dùng VBA để thực hiện.

Quy trình như sau :
-Ta có một Sheet Data chứa dữ liệu thô
-Ta dùng Advance Filter lọc qua một Sheet tạm, sau đó hiệu chỉnh để có thể tương ứng với Sổ Chi Tiết Mẫu. Sau đó ta copy dán lên Sổ mẫu.
-Còn các sổ tổng hợ thì dùng Sumproduct để tính toán, kết hợp với việc đặt các name động. Ta chỉ cho hàng đầu tiên có công thức, sau đó ta kéo công thức xuống và dán giá trị lên.

Đây là những việc đơn giản của excel, còn những điều bạn trình bày thì mình e là hơi hàn lâm.

Đôi điều tâm sự.

Thân!
 
L

luongvanluyen

Thành viên sơ cấp
2/9/05
27
0
0
HCM CITY
#3
Cảm ơn bạn đã nhiệt tình. Mình chỉ là dân Excel, không phải lập trình nên có chút trao đổi:
_Làm thế nào để lọc dữ liệu từ một sheet này qua sheet kia?
Trong excel có một công cụ rất mạnh, đó là Advance Filter, đây chính là cái bạn cần.
_Làm thế nào để từ bảng chi tiết đưa ra bảng tổng hợp?
Các công thức của Excel đủ mạnh để làm việc đó, VD như sumproduct
_Làm thế nào để tạo một bảng báo cáo tháng?
Đây cũng chỉ là một dạng báo cáo tổng hợp với điều kiện đặc trưng là thời gian (cộng thêm các điều kiện khác nữa). vì vậy dùng sumproduct thì có thể làm được.
Để tự động thì ta dùng VBA để thực hiện.

Quy trình như sau :
-Ta có một Sheet Data chứa dữ liệu thô
-Ta dùng Advance Filter lọc qua một Sheet tạm, sau đó hiệu chỉnh để có thể tương ứng với Sổ Chi Tiết Mẫu. Sau đó ta copy dán lên Sổ mẫu.
-Còn các sổ tổng hợ thì dùng Sumproduct để tính toán, kết hợp với việc đặt các name động. Ta chỉ cho hàng đầu tiên có công thức, sau đó ta kéo công thức xuống và dán giá trị lên.

Đây là những việc đơn giản của excel, còn những điều bạn trình bày thì mình e là hơi hàn lâm.
Đôi điều tâm sự.
Thân!
To:hieu1563;215959,
Tại sao tôi đưa ra topic này? Đó là các câu hỏi mà dân kế toán thường đặt ra.
Còn tại sao lại dùng VBA là chi cho rắc rối?. Xin bạn hãy đọc bài nói về VBA. Một công việc thường phải lập đi lập lại. Ví dụ: các báo cáo hàng tháng chằng hạn. Với công việc mô tả của bạn như trên có thể là không mất thời gian đối với bạn. Còn đối với tôi, tôi muốn rằng tiết kiệm thời gian. Muốn báo cáo gì, chỉ cần một cái Click thì đã có ngay. Đây là điều khác nhau giữa việc dùng các hàm sẵn có trong Excel. Đồng thời chúng ta có thể linh động theo những nhu cầu phát sinh.

LVL
 

Thành viên trực tuyến

  • thangbeo4222
  • samsammi
  • Huyền Mia
  • Thanh1212
  • hothidiep
  • daongocnam0603
  • Tin@1
  • hienhtt88
  • nguyen ngoc lam1997
  • thuongdan
  • bebebe123
  • Loanuk
  • huygia88
  • Lida Thiên
  • tuyet0504

Xem nhiều