Nhờ anh chị giúp em code dữ liệu nhập hàng từ kho tạm về kho chính theo từng tình trạng hàng?

Liên hệ QC

hitlecp

Thành viên hoạt động
Tham gia
17/5/10
Bài viết
151
Được thích
14
Chào anh, chị
Em nhờ anh, chị giúp em code dữ liệu nhập hàng từ kho tạm về kho chính theo từng tình trạng hàng, cụ thể như sau:
- Em có 2 sheet: “Kho chinh và Kho tam”. Sheet “Nhap ve” là sheet chạy code để ra kết quả nhập từ kho tạm về kho chính theo từng tình trạng hàng như trong bảng, cụ thể:

+ Sheet “Nhap ve” là lấy các mã hàng, tình trạng hàng,…bên sheet “Kho tam” để nhập chạy lên theo tùng tình trạng hàng tương ứng như ở sheet “Kho chinh”. Sheet “Kho tam” chỉ có 2 tình trạng hàng là: Hàng mới và hàng tái sử dụng, nhưng khi nhập về ở sheet “Kho chinh” thì sẽ qua 4 tình trạng hàng: Hỏng, mới, nhập lại, tái sử dụng tương ứng theo từng số lượng ở sheet “Kho tam”. (Em có đính kèm file)

Nhờ anh/chị giúp em code như kết quả ở sheet “Nhap lai”với ạ.

Em cám ơn ạ.
 

File đính kèm

  • Nhapve.xlsx
    16.9 KB · Đọc: 12
Sheet Nhapve, dòng cuối cùng, bên kho chính không có mã này: "PNK-DNI03.HANPN-19072022-004"
 
Upvote 0
Nhờ anh/chị giúp em code như kết quả ở sheet “Nhap lai”với ạ.
Bạn demo chung chung thế này có vẻ không thể lường hết các trường hợp có thể xảy ra. Nó sẽ dẫn đến việc phải code đi code lại nếu ai đó giúp bạn mất.
Lý do mình nói thế là do thấy sheet Kho chinh, Kho tạm, Sheet Nhập về dữ liệu y chang nhau. Có họa huần là copy paste sang là được kết quả như sheet Nhap ve.
Nên đưa dữ liệu giả lập sát với thực tế 1 chút
 
Upvote 0
Sheet Nhapve, dòng cuối cùng, bên kho chính không có mã này: "PNK-DNI03.HANPN-19072022-004"
Dạ, sang kho chính đúng là phiếu này nhưng chỉ khác 3 số đuôi 004 thành 005 ạ. chắc lúc này hệ thống bị lỗi nhảy số ạ, nhưng số lượng là của người này nhập về là đúng ạ
Bài đã được tự động gộp:

Bạn demo chung chung thế này có vẻ không thể lường hết các trường hợp có thể xảy ra. Nó sẽ dẫn đến việc phải code đi code lại nếu ai đó giúp bạn mất.
Lý do mình nói thế là do thấy sheet Kho chinh, Kho tạm, Sheet Nhập về dữ liệu y chang nhau. Có họa huần là copy paste sang là được kết quả như sheet Nhap ve.
Nên đưa dữ liệu giả lập sát với thực tế 1 chút
Kết quả ở sheet Nhap ve là thực tế luôn anh ạ. Là code ra kết quả như vậy ạ
 
Upvote 0
Dạ, sang kho chính đúng là phiếu này nhưng chỉ khác 3 số đuôi 004 thành 005 ạ. chắc lúc này hệ thống bị lỗi nhảy số ạ, nhưng số lượng là của người này nhập về là đúng ạ
Bài đã được tự động gộp:

Kết quả ở sheet Nhap ve là thực tế luôn anh ạ. Là code ra kết quả như vậy ạ
Đứng ở góc độ người viết code thì cần phải tìm ra yếu tố chung để xác định mặt hàng+ SL nào là chung giữa 2 kho.
Ở file này xuất kho tạm = nhập kho chính. Nhưng biết đâu sau này sẽ phát sinh kho tạm xuất không chỉ cho kho chính mà cho kho khác, hoặc xuất đi đâu đó (trả lại người bán chẳng hạn).
Như vậy có thể lấy "Số tham chiếu inside" làm yếu tố chung giữa 2 kho được không?
 
Upvote 0
Đứng ở góc độ người viết code thì cần phải tìm ra yếu tố chung để xác định mặt hàng+ SL nào là chung giữa 2 kho.
Ở file này xuất kho tạm = nhập kho chính. Nhưng biết đâu sau này sẽ phát sinh kho tạm xuất không chỉ cho kho chính mà cho kho khác, hoặc xuất đi đâu đó (trả lại người bán chẳng hạn).
Như vậy có thể lấy "Số tham chiếu inside" làm yếu tố chung giữa 2 kho được không?
Dạ được ạ. Lấy "Số tham chiếu inside" làm yếu tố chung giữa 2 kho
Kho tạm này sẽ không nhập về kho nào khác ạ, chỉ nhập về đúng kho chính thôi ạ
 
Upvote 0
Bạn chỉnh lại số tham chiếu cho đúng rồi chạy code này:
PHP:
Option Explicit
Sub test()
Dim lr&, i&, rng, arr()
With Sheets("Kho tam")
    lr = .Cells(Rows.Count, "C").End(xlUp).Row
    rng = .Range("B2:N" & lr).Value
    ReDim arr(1 To lr - 1, 1 To 8)
    For i = 1 To lr - 1
        arr(i, 1) = rng(i, 2): arr(i, 2) = rng(i, 3): arr(i, 3) = rng(i, 4): arr(i, 5) = rng(i, 5)
        arr(i, 6) = rng(i, 8): arr(i, 7) = rng(i, 12): arr(i, 8) = rng(i, 13)
    Next
End With
With Sheets("Nhap ve")
    .Range("A5:H10000").ClearContents
    .Range("A5").Resize(UBound(arr), 8).Value = arr
    .Range("D5:D" & lr + 3).Formula = "=IFERROR(INDEX('Kho chinh'!$F:$F,MATCH(G5,'Kho chinh'!$L:$L,0)),""Khong co"")"
End With
End Sub
 

File đính kèm

  • Nhapve.xlsm
    18.7 KB · Đọc: 16
Upvote 0
Bạn chỉnh lại số tham chiếu cho đúng rồi chạy code này:
PHP:
Option Explicit
Sub test()
Dim lr&, i&, rng, arr()
With Sheets("Kho tam")
    lr = .Cells(Rows.Count, "C").End(xlUp).Row
    rng = .Range("B2:N" & lr).Value
    ReDim arr(1 To lr - 1, 1 To 8)
    For i = 1 To lr - 1
        arr(i, 1) = rng(i, 2): arr(i, 2) = rng(i, 3): arr(i, 3) = rng(i, 4): arr(i, 5) = rng(i, 5)
        arr(i, 6) = rng(i, 8): arr(i, 7) = rng(i, 12): arr(i, 8) = rng(i, 13)
    Next
End With
With Sheets("Nhap ve")
    .Range("A5:H10000").ClearContents
    .Range("A5").Resize(UBound(arr), 8).Value = arr
    .Range("D5:D" & lr + 3).Formula = "=IFERROR(INDEX('Kho chinh'!$F:$F,MATCH(G5,'Kho chinh'!$L:$L,0)),""Khong co"")"
End With
End Sub
Nhầm cột tình trạng hàng ở kho tạm thành kho chính rồi ạ. em sửa lại công thức trong code hay sao anh ạ
 
Upvote 0
Web KT

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

Back
Top Bottom