Nhờ sửa code VBA hoặc xin code mới để xuất 5 Sheet thành file mới (chỉ xuất những vùng có dữ liệu trong sheet)

Liên hệ QC

LuuGiaPhúc

Thành viên hoạt động
Tham gia
28/7/21
Bài viết
126
Được thích
51
Chào các anh chị,
Em có 1 đoạn code dùng để xuất 5 sheet (chỉ định sẵn là sheet 5 , 6, 7, 8 , 9)

Sub Export_5_Sheet_NXT_HKM()
Dim Path As String, FileName As String, i As Byte
Application.DisplayAlerts = False
Sheets(Array("Chi tiet nhap", "Chi tiet xuat", "Bao cao ton", "Xuat chi phi", "Thanh ly")).Copy
Path = ThisWorkbook.Path
FileName = "Báo cáo NXT HKM AS HO Thang " & Format(Now(), "mm.yyyy")
With ActiveWorkbook
.SaveAs Path & "\" & FileName & ".xlsx"
ActiveSheet.Shapes.Range(Array("Button 1")).Delete
MsgBox "File duoc luu cùng thu muc voi file tong hop " & vbNewLine & vbNewLine & "Tên file : Báo cáo NXT HKM AS HO Thang " & Format(Now(), "mm.yyyy") & ".xlsx", , "Thông báo : "
End With
Application.DisplayAlerts = True
End Sub

Hiện nay, em muốn thêm 1 yêu cầu :
Trong từng sheet, em chỉ muốn nó xuất những vùng có dữ liệu thôi, chứ không phải bê nguyên sheet như cái code bên trên , cụ thể như sau :

Sheet CHI TIET NHAP : chỉ xuất vùng A1:G cuối cùng có dữ liệu (vùng AA:AG là vùng công thức tạm, không cần xuất) , như trong hình thì sẽ bỏ hàng trống ở hàng 20:76 không xuất vì không có dữ liệu

1630039209078.png

Sheet CHI TIET XUAT : chỉ xuất vùng A1:V83 (bỏ hàng 36 : 76 vì không có dữ liệu. Vùng F:BZ : vùng này data được import từ các file báo cáo gởi về nên tùy, ví dụ như có 17 văn phòng đặt hàng thì sẽ có data từ F:V , nếu có 10 văn phòng đặt hàng thì sẽ có data từ F:O, nhiều nhất là tới cột BZ là hết nên em phải kẻ khung sẵn, nhưng khi xuất ra mà nó xuất nguyên sheet thì em lại phải đi xóa bằng tay những hàng và cột trống.

1630039687262.png

sheet BAO CAO TON thì giống như sheet CHI TIET NHAP CHỈ XUẤT TỪ VÙNG A1: D , bỏ hàng 38:78 vì không có dữ liệu

1630040023729.png

2 sheet còn lại là XUAT CHI PHI và THANH LÝ CŨNG TƯƠNG TỰ VẬY , xuất A1:J85 , bỏ hàng 8:75 vì không có data

1630040727371.png

Tất cả data của 5 sheet này em import từ các báo cáo do các văn phòng gởi về, nên số lượng hàng tùy mỗi tuần.
Hiện nay, dùng code ở trên , sau khi xuất ra thành file báo cáo, em phải vào từng sheet để xóa hàng và cột trống rất thủ công.
Nhờ các anh chị hỗ trợ giúp. Em cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
@LuuGiaPhúc Tôi đã gán nút bấm cho code mới. Bạn bấm chạy thử code!
Ôi, bạn quá hay luôn, nó chạy nhanh và đúng như ý luôn.
Cảm ơn bạn đã dành thời gian hỗ trợ. Cảm ơn các anh chị đã tạo ra diễn đàn này để giúp cho những người như mình giảm bớt được rất nhiều thao tác , thời gian khi làm việc với excel.
 
Ôi, bạn quá hay luôn, nó chạy nhanh và đúng như ý luôn.
Cảm ơn bạn đã dành thời gian hỗ trợ. Cảm ơn các anh chị đã tạo ra diễn đàn này để giúp cho những người như mình giảm bớt được rất nhiều thao tác , thời gian khi làm việc với excel.
Bạn lưu ý cái arrRw. 5 con số trong array đó lần lượt là số dòng cuối cần xoá của các sheet trong mảng arrSh. Nếu có gì thay đổi thì chỉ định lại.
 
@LuuGiaPhúc Tôi đã gán nút bấm cho code mới. Bạn bấm chạy thử code!
Bạn ơi, có phát sinh 2 vấn đề nhỏ , bạn điều chỉnh 1 chút giúp mình nhé,
1. Sau khi xuất file ra thì giữ cho file vẫn mở (file tổng hợp vẫn mở và file báo cáo xuất ra cũng mở luôn).
2. Trong file báo cáo xuất ra, tất cả công thức ở cả 5 sheet đều phải chuyển thành value hết
Cảm ơn bạn
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom