Báo cáo Xuất - nhập - tồn chi tiết số toa / số cây vải

Liên hệ QC

soledad_90

Thành viên thường trực
Tham gia
12/1/10
Bài viết
250
Được thích
43
Giới tính
Nam
Hiện có có file dữ liệu theo giõi chi tiết xuất - nhập - tồn cho từng po/số toa/số cây vải với từng loại vải khác nhau.
Tại Sheet BCXNT sẽ thiết lập code VBA và em có thể hiện Ví dụ kết quả mong muốn trong tệp đính kèm.
( Với lưu ý : Khi xuất sẽ ưu tiên xuất hàng tồn kho trước: khi cấp hết mới chuyển qua lô hàng mới nhập trong kỳ )
Tại Sheet DanhMuc Số lượng tồn đầu kỳ bằng 0 sẽ không hiển thị kết quả trong Sheet BCXNT
Mong nhận được sự giúp đỡ của anh chị trên diễn đàn ạ.
Em cảm ơn!1620716817052.png
 

File đính kèm

  • 210511_Theo gioi chi tiet so cay so toa vai_kho NVL.xls
    52 KB · Đọc: 18
Em xin nhờ sự giúp đỡ và tư vấn thêm về cách làm từ anh / chị trên diễn đàn ạ.
Em cảm ơn!
 
Upvote 0
"Tại Sheet DanhMuc Số lượng tồn đầu kỳ bằng 0 sẽ không hiển thị kết quả trong Sheet BCXNT"

Thế trong kỳ có nhập - xuất thì tại sao không cho hiển thị phát sinh?
 
Upvote 0
"Tại Sheet DanhMuc Số lượng tồn đầu kỳ bằng 0 sẽ không hiển thị kết quả trong Sheet BCXNT"

Thế trong kỳ có nhập - xuất thì tại sao không cho hiển thị phát sinh?
Em diễn đạt ý này bị thiếu rồi .
Em xin chỉnh lại ý này :
- Tại Sheet DanhMuc Số lượng tồn đầu kỳ bằng 0 không có phát sinh nhập - xuất trong kỳ sẽ không hiển thị kết quả trong Sheet BCXNT
- Tại Sheet DanhMuc Số lượng tồn đầu kỳ bằng 0 Có phát sinh nhập - xuất trong kỳ sẽ hiển thị kết quả trong sheet BCXNT

Em cảm ơn.
 
Upvote 0
Em diễn đạt ý này bị thiếu rồi .
Em xin chỉnh lại ý này :
- Tại Sheet DanhMuc Số lượng tồn đầu kỳ bằng 0 không có phát sinh nhập - xuất trong kỳ sẽ không hiển thị kết quả trong Sheet BCXNT
- Tại Sheet DanhMuc Số lượng tồn đầu kỳ bằng 0 Có phát sinh nhập - xuất trong kỳ sẽ hiển thị kết quả trong sheet BCXNT

Em cảm ơn.
Bấm nút để chạy báo cáo (Chính tả: theo dõi chứ không phải theo giõi!)
 

File đính kèm

  • 210511_Theo doi chi tiet so cay so toa vai_kho NVL_soledad_90.xls
    75.5 KB · Đọc: 23
Upvote 0
Bấm nút để chạy báo cáo (Chính tả: theo dõi chứ không phải theo giõi!)
Em xin nhận tư vấn cách làm từ ạ.
Tại sheet Dulieu em sẽ tách thành 2 sheet nhập và xuất riêng biệt
Tại sheet nhập và xuất em sẽ thể hiện vị trí để ( vị trí để thiết lập ở định dạng chuỗi : VD. A.2.1 )
Khi đó tại sheet BCXNT kết quả có thể hiển thị luôn phần vị trí này ra không ạ .
Em cảm ơn !
với code

Mã:
Sub NXT()
Dim arrPS, arrTK, arrKQ
Dim i As Long, j As Long, k As Long
Dim dic As Object
Dim StrKey As String

Sheet2.Range("B2:K" & Sheet2.Range("C65536").End(xlUp).Row).AutoFilter
arrTK = Sheet1.Range("B4:F" & Sheet1.Range("B65536").End(xlUp).Row).Value
arrPS = Sheet2.Range("B3:I" & Sheet2.Range("C65536").End(xlUp).Row).Value
Set dic = CreateObject("Scripting.Dictionary")

ReDim arrKQ(1 To UBound(arrPS), 1 To 9)
For i = 1 To UBound(arrTK)
    If arrTK(i, 5) <> 0 Then
        k = k + 1
        dic.Add arrTK(i, 1) & "#" & arrTK(i, 3) & "#" & arrTK(i, 4), k
        arrKQ(k, 1) = arrTK(i, 1)
        arrKQ(k, 2) = arrTK(i, 2)
        arrKQ(k, 4) = arrTK(i, 3)
        arrKQ(k, 5) = arrTK(i, 4)
        arrKQ(k, 6) = arrTK(i, 5)
    End If
Next

For i = 1 To UBound(arrPS)
    StrKey = arrPS(i, 2) & "#" & arrPS(i, 6) & "#" & arrPS(i, 7)
    If Not dic.Exists(StrKey) Then
        k = k + 1
        dic.Add StrKey, k
        arrKQ(k, 1) = arrPS(i, 2)
        arrKQ(k, 2) = arrPS(i, 3)
        arrKQ(k, 3) = arrPS(i, 5)
        arrKQ(k, 4) = arrPS(i, 6)
        arrKQ(k, 5) = arrPS(i, 7)
        If arrPS(i, 4) = "N" Then
            arrKQ(k, 7) = arrPS(i, 8)
        ElseIf arrPS(i, 4) = "X" Then
            arrKQ(k, 8) = arrPS(i, 8)
        End If
        arrKQ(k, 9) = arrKQ(k, 7) - arrKQ(k, 8)
    Else
        If arrPS(i, 4) = "N" Then
            arrKQ(dic.Item(StrKey), 7) = arrKQ(dic.Item(StrKey), 7) + arrPS(i, 8)
        ElseIf arrPS(i, 4) = "X" Then
            arrKQ(dic.Item(StrKey), 8) = arrKQ(dic.Item(StrKey), 8) + arrPS(i, 8)
        End If
        arrKQ(dic.Item(StrKey), 9) = arrKQ(dic.Item(StrKey), 6) + arrKQ(dic.Item(StrKey), 7) - arrKQ(dic.Item(StrKey), 8)
    End If
Next
    Sheet3.Range("B4:L5000").ClearContents
    Sheet3.Range("B4").Resize(k, 9).Value = arrKQ
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom