https://drive.google.com/file/d/1Zv0D...
xin thầy tư vấn giúp e phần viết code VBA trong sheet DATA giúp ak..dạ xin cảm ơn thầy nhiều ak
Không rõ trong sheet Data bạn muốn viết code thực hiện việc gì?
Trong code tại phiếu nhập, phiếu xuất phần lấy số tồn đầu kỳ chưa chính xác. Bởi sau mỗi lần nhập / xuất trước đó thì số lượng tồn đầu sẽ thay đổi, không phải cố định như tồn ban đầu => bạn xem lại nội dung này nhé.
Bạn nên định hướng lại như sau:
Sheet DATA: ở đây đang làm nhiệm vụ vừa là danh mục hàng hóa (có tồn kho ban đầu), vừa làm báo cáo tổng hợp Nhập-xuất-tồn => nên tách ra thành 2 sheet cho 2 việc riêng
Ngoài ra sheet PhieuNhap, PhieuXuat mới là nơi đang thực hiện việc lưu trữ các lần nhập, xuất => đây mới là dữ liệu (data)
Như vậy sẽ có ít nhất 4 sheet:
1. Danh mục hàng hóa (có tồn kho ban đầu)
2. Bảng kê nhập kho
3. Bảng kê xuất kho
4. Báo cáo N-X-T
Tại bảng kê nhập, xuất bạn có thể tạo code lấy thông tin theo mã hàng được chọn, nhưng phần tồn đầu kỳ chỉ áp dụng với bảng kê xuất thôi. Bảng nhập không cần.
Công thức lấy tồn đầu kỳ bạn nên viết trực tiếp ở bảng kê xuất, công thức giống với báo cáo N-X-T để tính tồn cuối kỳ (tới trước thời điểm xuất) => hàm SUMIFS với điều kiện:
- Mã hàng: theo mã hàng được chọn trong bảng kê xuất kho
- Ngày: nhỏ hơn hoặc bằng ngày bạn thực hiện xuất kho
Tồn kho tại thời điểm xuất = Tồn ban đầu + nhập tới trước thời điểm xuất - xuất tới trước thời điểm xuất
Tồn ban đầu = hàm vlookup tìm trong bảng danh mục hàng hóa
Nhập tới trước thời điểm xuất = SUMIFS(cột số lượng nhập, cột mã hàng nhập, mã hàng, cột ngày nhập, "<=" & ngày xuất)
Xuất tới trước thời điểm xuất = SUMIFS(cột số lượng xuất, cột mã hàng xuất, mã hàng, cột ngày xuất, "<=" & ngày xuất)