Lọc dữ liệu từ nhiều sheet để in (1 người xem)

Người dùng đang xem chủ đề này

duysangvgs

Thành viên chính thức
Tham gia
10/10/07
Bài viết
80
Được thích
27
chào các anh chị
em cần in danh sách được kéo dữ liệu từ nhiều sheet, sau đó in ấn ra theo tháng
yêu cầu cụ thể e đã ghi trong file đính kèm
kính mong anh/chị giúp đỡ
em cảm ơn ạ
 

File đính kèm

chào các anh chị
em cần in danh sách được kéo dữ liệu từ nhiều sheet, sau đó in ấn ra theo tháng
yêu cầu cụ thể e đã ghi trong file đính kèm
kính mong anh/chị giúp đỡ
em cảm ơn ạ
Bạn gởi bài trong mục Lập trình nên tôi lọc bằng VBA.
Enable Macros khi mở file, Thay đổi ô F1 hoặc F2 là code chạy.
 

File đính kèm

Upvote 0
cám ơn anh ạ, em cũng nghĩ cần phải làm bằng VB vì nếu em điền đầy đủ thông tin ở sheet lịch biểu trả nợ thì sheet sẽ có khoảng 63.000 dòng, nếu chạy công thức thì nặng và máy sẽ đờ ra, hic
file đính kèm em mới để thử phần lịch biểu là 500 dòng dữ liệu, và 3 tháng theo dõi chi tiết (gồm 3 sheet 03, 04, 05) với số liệu cũng rất ít để ví dụ có dung lượng 160 KB. Sau khi coppy đủ 12 tháng (chưa thêm chút số liệu nào vào nữa) dung lượng file lên đến gần 500 KB
Với đà này em mà nhập đủ số liệu vào không hiểu file có chạy nổi nữa không

kính mong anh có thể bớt thời gian chạy code VB dùm em cho sheet theo các tháng như những chỗ e đã chạy công thức được không ạ
về phần in ấn e sẽ nghiên cứu để từ từ hiểu, nhưng anh cho em hỏi là có cách gì tự động kẻ bảng theo số lượng dòng được lọc ra ở sheet print không ạ
 
Lần chỉnh sửa cuối:
Upvote 0
cám ơn anh ạ, em cũng nghĩ cần phải làm bằng VB vì nếu em điền đầy đủ thông tin ở sheet lịch biểu trả nợ thì sheet sẽ có khoảng 63.000 dòng, nếu chạy công thức thì nặng và máy sẽ đờ ra, hic
file đính kèm em mới để thử phần lịch biểu là 500 dòng dữ liệu, và 3 tháng theo dõi chi tiết (gồm 3 sheet 03, 04, 05) với số liệu cũng rất ít để ví dụ có dung lượng 160 KB. Sau khi coppy đủ 12 tháng (chưa thêm chút số liệu nào vào nữa) dung lượng file lên đến gần 500 KB
Với đà này em mà nhập đủ số liệu vào không hiểu file có chạy nổi nữa không

kính mong anh có thể bớt thời gian chạy code VB dùm em cho sheet theo các tháng như những chỗ e đã chạy công thức được không ạ
về phần in ấn e sẽ nghiên cứu để từ từ hiểu, nhưng anh cho em hỏi là có cách gì tự động kẻ bảng theo số lượng dòng được lọc ra ở sheet print không ạ
Vụ kẻ khung thì thay đoạn dưới chữ Next I thành cái này:
[GPECODE=vb]Next I
[B6:O65000].ClearContents
[B6:O65000].Borders.LineStyle = xlNone
If K Then
[B6].Resize(K, 14) = dArr
[B6].Resize(K, 14).Borders.LineStyle = xlContinuous
End If
End Sub[/GPECODE]
 
Upvote 0
ái chà, chắc e phải thực sự dành thời gian nhiều cho mảng này để nghiên cứu thôi +-+-+-+
cám ơn anh Ba Tê nhiều ạ
anh hộ em nốt vụ chạy VB thay cho các công thức nhé
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu bận bác hộ em số liệu của 3 cột J, K, L ở sheet tháng nhé -=.,,
 
Upvote 0
Vụ kẻ khung thì thay đoạn dưới chữ Next I thành cái này:
[GPECODE=vb]Next I
[B6:O65000].ClearContents
[B6:O65000].Borders.LineStyle = xlNone
If K Then
[B6].Resize(K, 14) = dArr
[B6].Resize(K, 14).Borders.LineStyle = xlContinuous
End If
End Sub[/GPECODE]
Anh Ba Tê ơi cứu em,
đoạn code trên của anh e sửa về
[B6:O1000].ClearContents
[B6:O1000].Borders.LineStyle = xlNone

sau đó e lại sửa thành O651000 thì thấy dung lượng của file đang từ 260 KB lên 25 MB
hoảng quá em lại sửa về
[B6:O1000].ClearContents
[B6:O1000].Borders.LineStyle = xlNone
thì dung lượng file vẫn là 25 MB
vậy là sao anh nhỉ
 
Upvote 0
Anh Ba Tê ơi cứu em,
đoạn code trên của anh e sửa về
[B6:O1000].ClearContents
[B6:O1000].Borders.LineStyle = xlNone

sau đó e lại sửa thành O651000 thì thấy dung lượng của file đang từ 260 KB lên 25 MB
hoảng quá em lại sửa về
[B6:O1000].ClearContents
[B6:O1000].Borders.LineStyle = xlNone
thì dung lượng file vẫn là 25 MB
vậy là sao anh nhỉ
Vì bạn "quá tham" vùng dữ liệu lớn.
Một người trong 1 tháng hơn 1.000 dòng dữ liệu sao?
Nếu tối đa khoảng 2.000 dòng thì khai báo 2.000 thôi.
Các sheet tháng công thức của bạn dài dòng quá không có thời gian để đọc hiểu, tôi lấy nguyên công thức của bạn sau khi tính xong thì chuyển thành text cho nhẹ file thôi, thay đổi cột D sẽ thay đổi các cột có công thức.
Lưu ý: Công thức chính của bạn trên dòng 6, không được xóa dòng này, nếu công thức có sai sót thì chỉnh sửa trên dòng 6, các dòng bên dưới sẽ theo đó mà làm.
Cần cập nhật lại cả bảng dữ liệu thì ấn nút GPE, dữ liệu nhiều thì uống cà phê chờ tý.
 

File đính kèm

Upvote 0
em cám ơn anh, ko có anh giúp đỡ e định làm kiểu qua tháng thì coppy giá trị
giờ có cách này của anh em đỡ thủ công hơn rồi, cám ơn anh đã bớt thời gian giúp em, phần còn lại em sẽ nghiên cứu tiếp ạ

thực ra, do e chưa giỏi nên công thức và cách xử lý nó mới dài dòng và loằng ngoằng vậy ạ +-+-+-+
chứ công việc ko phải phức tạp ạ, số liệu được kéo từ sheet Lịch biểu trả nợ dựa theo mã tại cột D bằng hàm sumifs gồm điều kiện của tháng và của mã khách hàng, vậy thôi ạ, hic
 
Upvote 0
ví dụ em muốn thêm công thức vào cột I thì phải thêm dòng lệnh Cll.Offset(, 1).Value = Cells(6, 9).FormulaR1C1
phải không bác
(sau khi cập nhật số liệu kỳ trước chuyển sang, thêm công thức cộng vào, cũng để cho VB tự tính toán)

em làm thử thấy ko ra kết quả, hi
 
Lần chỉnh sửa cuối:
Upvote 0
ví dụ em muốn thêm công thức vào cột I thì phải thêm dòng lệnh Cll.Offset(, 1).Value = Cells(6, 9).FormulaR1C1
phải không bác
(sau khi cập nhật số liệu kỳ trước chuyển sang, thêm công thức cộng vào, cũng để cho VB tự tính toán)

em làm thử thấy ko ra kết quả, hi
Cll hiện hành là cột D, Offset(,1) là cột E, Offset(,6) là cột J, .... tự tính đi.
 
Upvote 0
anh Ba Tê ơi, anh làm ơn cho em hỏi là, tại sheet Print, muốn không hiện những dòng nếu tổng cộng không có số liệu đi bằng VB thì làm thế nào ạ (chỉ để lại những dòng có số liệu)
print.jpg
 
Upvote 0
anh Ba Tê hoặc anh chị nào giúp em vụ bỏ bớt dòng trống với

trường hợp sau khi cập nhật bị như ảnh này thì nguyên nhân là do gì các anh chị nhỉ
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    23.2 KB · Đọc: 8
Lần chỉnh sửa cuối:
Upvote 0

Bài viết mới nhất

Back
Top Bottom