Chào mọi người, xin nhờ mọi người giúp đỡ code VBA với ạ
Em có 1 file excel, trong đó có 2 sheet
1 sheet chứa dữ liệu số Km xe chạy
1 sheet chứa dữ liệu số Km trên hóa đơn đã xuất
Em muốn ghép dữ liệu xe chạy với dữ liệu hóa đơn
Yêu cầu chi tiết em có ghi trong file
Em mới tập tành viết code VBA nên trình độ còn kém, nhờ mọi người giúp với ạ
Bạn diễn giải vẫn chưa rõ hết, ví dụ:
Trường hợp 1:
1._Dòng số thứ tự 1, Xe 34H01, ngày trả 18/09/20024, có số km chạy = 118.45
1.1_Dò tìm tại sheet "Hóa đơn (IV): điều kiện để dò là số km trên hóa đơn tại cột (IV) khớp với số km chạy là 118.45.
1.2_Dò được Hóa đơn số 68375 có ngày xuất là 26/09/2024
* Điều kiện ưu tiên 1: Hai con số bằng nhau (là con số nào bằng với con số nào)?
* Điều kiện ưu tiên 2: .........................................................................................................
* Điều kiện ưu tiên 3: ..........................................................................................................
1.3_Tại sheet1: Đ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.4_Tại sheet "hoa don (IV): Điền kết quả vào dòng số thứ tự 1: ........................................................
Trường hợp 2:
2._...........................................................
2.1_........................................................
2.2_........................................................
Bạn diễn giải vẫn chưa rõ hết, ví dụ:
Trường hợp 1:
1._Dòng số thứ tự 1, Xe 34H01, ngày trả 18/09/20024, có số km chạy = 118.45
1.1_Dò tìm tại sheet "Hóa đơn (IV): điều kiện để dò là số km trên hóa đơn tại cột (IV) khớp với số km chạy là 118.45.
1.2_Dò được Hóa đơn số 68375 có ngày xuất là 26/09/2024
* Điều kiện ưu tiên 1: Hai con số bằng nhau (là con số nào bằng với con số nào)?
* Điều kiện ưu tiên 2: .........................................................................................................
* Điều kiện ưu tiên 3: ..........................................................................................................
1.3_Tại sheet1: Đ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.4_Tại sheet "hoa don (IV): Điền kết quả vào dòng số thứ tự 1: ........................................................
Trường hợp 2:
2._...........................................................
2.1_........................................................
2.2_........................................................
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....
Mình trình bày lại ntn, bạn đã hiểu rõ chưa? Hãy giúp mình nếu có thể nhé
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....
Mình trình bày lại ntn, bạn đã hiểu rõ chưa? Hãy giúp mình nếu có thể nhé