Xin giúp đỡ code lập trình VBA : Ghép dữ liệu

Buichung

Yêu THVBA
Minh đang gặp khó khi viết code cho 1 file Excel, xin nhờ mọi người giúp đỡ với
Mình mô tả cách điền dữ liệu thủ công như sau: (có diễn giải cả trong file đính kèm)

Mô tả các bước :
1- Dòng số thứ tự 1, xe 34H 01, ngày trả 18/9/2024, có số Km chạy = 118.45
1.1. Dò tìm tại sheet "Hóa đơn (IV)
- Điều kiện 1 : Ngày hóa đơn - ngày trả hàng (cột D sheet1) >= 7
==> thấy hóa đơn 68375, có ngày xuất hóa đơn là 26/9/2024 thỏa mãn
- Ưu tiên 1 : số lượng hóa đơn = số lượng Km của xe = 118.45
==> thấy hóa đơn 68375, có ngày xuất hóa đơn là 26/9/2024 thỏa mãn về ngày và số lượng = 118.45
==> Ghép số lượng của hóa đơn này cho xe 34H 01
==> Mình điền kết quả vào dòng số thứ tự 1 : Dầu lần 1 = 118.45 và số IV1 = 68375
1.2 Hóa đơn 68375 đã ghép với xe 34H 01 rồi sẽ không ghép với các xe tiếp theo nữa
2- Tiếp đến dòng số thứ tự số 2 : Xe 34H 02, ngày trả 4/9/2024 , số Km = 118.45
2.1. Dò tìm sang sheet " Hóa đơn (IV) bên cạnh
Áp dụng điều kiện và ưu tiên như trường hợp 1, thấy hóa đơn 68375, nhưng hóa đơn này ghép với xe ở trên rồi nên bỏ qua
2.2. Tiếp tục
- Điều kiện 1 : Ngày hóa đơn - ngày trả hàng (cột D sheet1) >= 7
- Ưu tiên 2 : Xét các hóa đơn từ trên xuống dưới thỏa mãn điều kiện 1
==> Xác định được hóa đơn là 143317 ( hóa đơn của dòng số thứ tự 1 , sheet bên cạnh)
hóa đơn này có số lượng 367.14 - 118.45 = 248.69 ( dư )
Như vậy, tại dòng số 2, mình sẽ điền vào dầu lần 1 = 118.45 và IV1 = số hóa đơn 143317
3. Tiếp đến dòng số thứ tự số 3 : Xe 34H 03
- Điều kiện 1 : về ngày ==> Ngày hóa đơn - ngày trả hàng (cột D sheet1) >= 7
==> Hóa đơn 143317 vẫn tiếp tục thỏa mãn
==> Số dư của hóa đơn 143317 là 248.69 sẽ dùng tiếp cho các xe 34H 03 là 47.84 ==> Như vậy, tại dòng số 3, mình sẽ điền vào dầu lần 1 = 47.84 và IV1 = số hóa đơn 143317
==> hóa đơn này có số lượng 248.69 - 47.84 = 200.85 ( dư )
4. Tiếp đến dòng số thứ tự số 4 : Xe 34H 04
- Điều kiện 1 : về ngày ==> Ngày hóa đơn - ngày trả hàng (cột D sheet1) >= 7
==> Hóa đơn 143317 vẫn tiếp tục thỏa mãn
==> Số dư của hóa đơn 143317 là 200.85 sẽ dùng tiếp cho các xe 34H 04 ==> Như vậy, tại dòng số 4, mình sẽ điền vào dầu lần 1 = 200.85 và IV1 = số hóa đơn 143317
Nhưng xe này có số Km = 300 , chưa đủ, số lượng còn thiếu = 300 - 200.85 = 99.15 sẽ lấy trong số lượng của 1 hóa đơn khác thỏa mãn về ngày tiếp theo là 51374
==> Khi đó, số lượng 99.15 sẽ điền vào cột Dầu lần 2, và 51374 sẽ điền vào cột IV2
==> Cứ tiếp tục như vậy....

File đây ạ
 
Top