Chào thầy, em có sử dụng file mẫu cảu thầy làm file quản lý kho CC.
em có 1 vấn đề khi 1n lại phiếu nhập xuất kho ạ.
Ví dụ: PXK091 em có xuất 1 hàng, khi chọn 91 phần xuất thì lại k ra hàng nào. PXK092 có 9 hàng xuất thì khi chọn và in lại phiếu xuất lại chỉ có 8 hàng, tức là phiếu nào cũng sẽ bị thiếu 1 hàng ạ. Thầy xem giúp em bị sai chỗ nào với ạ. Em cám ơn!
Bạn xem lại có bị dòng ẩn không. Mình thấy số dòng ở Phiếu xuất kho đang hiển thị dòng 11 tới dòng 15 luôn, như thế các dòng 12, 13, 14 đang bị ẩn thì phải (hoặc hiển thị chưa đủ)
Bạn thử mở ẩn ra xem sao nhé. Nếu thực sự bị ẩn thì viết code xử lý lại các dòng bị ẩn này là được. Còn không phải nguyên nhân dòng bị ẩn thì là do lệnh lấy dữ liệu từ Bảng kê ra phiếu xuất có vấn đề (code advanced filter) => kiểm tra lại code này.
có dòng 12 đang bị ẩn ạ, nhưng em không bỏ ẩn được.
cade advanced em không biết sửa sao ạ.
Sheet3.Range("A" & DongDau_Data - 1 & ":M" & lr_Data).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=ActiveSheet.Range("AdF_inPNK_DK"), _
CopyToRange:=ActiveSheet.Range("AdF_inPNK_KQ"), _
Unique:=False
Bạn mở khóa sheet ra (thẻ Preview chọn mục Unprotect sheet) sau đó bỏ ẩn dòng nhé.
Do code VBA của bạn có thêm lệnh tự động khóa Sheet khi làm báo cáo nên cần mở thủ công bằng tay để kiểm tra. Lệnh khóa này không có mật khẩu nên bạn có thể mở ngay được.
Code cập nhật báo cáo không có lệnh ẩn dòng nên có thể thao tác ẩn trước khi hoàn thiện báo cáo đang chưa chính xác. Bạn bỏ ẩn ra, sau đó chỉ ẩn đúng dòng tiêu đề phụ. Mình nghĩ là dòng 12, còn dòng 13 và 14 là dòng nội dung báo cáo rồi.
em có bỏ ẩn rồi ạ, Em chỉ ẩn dòng 12 thôi, nhưng kết quả vẫn chưa chính xác ạ. PXK092 vẫn chỉ ra 8 hàng ạ.
Vị trí của dòng tổng cộng đang bị đè lên dòng 9.
Bạn xét lại quy trình như sau:
- Bước 1: chạy advanced filter để lấy nội dung trích lọc
- Bước 2: xác định dòng cuối
- Bước 3: thêm Tổng cộng vào vị trí Dòng cuối + 1 nhé
đây là code lấy nội dung phiếu ạ
Bạn để ý ở đoạn Phan ket thuc cua phieu, với cấu trúc With ActiveSheet
Ở đó có dòng Sheet13.Range(...).Copy .Range("D" & lr_Phieu)
Ở đây phải là lr_Phieu + 1 mới đúng bạn nhé.
Em sửa được rồi ạ.
Em cám ơn!