Tính Tồn Hợp đồng Của Vật Tư theo LIFO (2 người xem)

Người dùng đang xem chủ đề này

DMQ

Thành viên dốt
Tham gia
21/3/12
Bài viết
730
Được thích
58
Giới tính
Nam
Chào các anh chị!!!!
Em có file Excel tính tồn theo Hợp Đồng (HD) của thép tấm,mong các anh chị giúp đỡ.
Trong file sheet Ton_LIFO em có mô tả,mong anh chị giúp.
Em Cám Ơn!!!
 

File đính kèm

Em xin bổ sung là em đang dùng Excel 2010.
 
Chào các anh chị!!!!
Em có file Excel tính tồn theo Hợp Đồng (HD) của thép tấm,mong các anh chị giúp đỡ.
Trong file sheet Ton_LIFO em có mô tả,mong anh chị giúp.
Em Cám Ơn!!!
Chào bạn,
Mình làm thử bằng VBA theo nguyên tắc LIFO theo từng Code Item và Hợp đồng.
Khi xuất, chương trình sẽ trừ từ lô nhập gần nhất trước; nếu không đủ sẽ tự động trừ tiếp lô trước đó.
Bạn tải file đính kèm chạy thử xem có đúng với yêu cầu thực tế không nhé.
 

File đính kèm

Cám ơn bạn Ngày mai trời lại sáng nha!!!!
Mình thử thấy OK rồi, sheet ChiTiet_LIFO là bảng phụ hả bạn,không làm gì trên sheet này phải không bạn. Cám ơn bạn nhiều.
Bài này dùng công thức chắc không được bạn nhỉ.
À, sao mấy số có dấu chấm đằng sau là sao bạn?
Bài đã được tự động gộp:

À bạn ơi,ở sheet Ton_LIFO mình copy tay từ sheet Nhap và Sheet Xuat qua rồi Sort tăng dần theo ngày đó, vậy code có thể làm luôn được không bạn Ngày mai trời lại sáng??
 
Lần chỉnh sửa cuối:
Cám ơn bạn Ngày mai trời lại sáng nha!!!!
Mình thử thấy OK rồi, sheet ChiTiet_LIFO là bảng phụ hả bạn,không làm gì trên sheet này phải không bạn. Cám ơn bạn nhiều.
Bài này dùng công thức chắc không được bạn nhỉ.
À, sao mấy số có dấu chấm đằng sau là sao bạn?
Bài đã được tự động gộp:

À bạn ơi,ở sheet Ton_LIFO mình copy tay từ sheet Nhap và Sheet Xuat qua rồi Sort tăng dần theo ngày đó, vậy code có thể làm luôn được không bạn Ngày mai trời lại sáng??
Bạn tải lại file bài 3 nhé: chỉ cần cập nhật 2 sheet Nhập và Xuất rồi bấm
nút "Cập nhật LIFO". Macro sẽ tự gộp dữ liệu, sắp xếp theo ngày và tính
tồn theo từng Hợp Đồng theo nguyên tắc LIFO — xuất trừ lô nhập gần nhất
trước, thiếu thì lùi lô trước; một lần xuất có thể ăn qua nhiều HĐ, xuất
vượt tồn sẽ báo [THIẾU TỒN].
--------------------
Nhân dịp lễ, chúc bạn và cả nhà GPE một kỳ nghỉ vui vẻ, bình an!
 
Cám ơn bạn nha!!! CHÚC BẠN NGHỈ LỄ VUI VẺ!!!!!
Bài đã được tự động gộp:

Tức là sheet "ChiTiet_LIFO" không đụng chạm gì hả bạn,hoặc Delete cũng không được phải không bạn Ngày mai trời lại sáng???
Cám ơn bạn nha !!!!
 
Lần chỉnh sửa cuối:
Cám ơn bạn nha!!! CHÚC BẠN NGHỈ LỄ VUI VẺ!!!!!
Bài đã được tự động gộp:

Tức là sheet "ChiTiet_LIFO" không đụng chạm gì hả bạn,hoặc Delete cũng không được phải không bạn Ngày mai trời lại sáng???
Cám ơn bạn nha !!!!
Đúng rồi bạn, ChiTiet_LIFO chỉ là bảng phụ để tra cứu, bạn không cần
làm gì trên đó.

Mỗi lần bấm nút "Cập nhật LIFO", macro sẽ xóa sạch sheet này rồi ghi
lại từ đầu. Vì vậy bạn đừng tự điền hay ghi chú thêm gì vào đó — lần
bấm nút sau nó sẽ bị xóa hết, không giữ lại được.

Sheet này chỉ để xem mỗi lần Xuất trừ vào HĐ nào và bao nhiêu; nếu xuất
vượt tồn thì có dòng [THIẾU TỒN] tô đỏ cho dễ thấy.

Còn xóa (Delete) sheet đó cũng không sao, lần sau macro tự tạo lại.
Không cần dùng thì bấm chuột phải vào tab sheet → Hide để ẩn đi.
 
Có phát sinh thêm vật tư hay HD cũng không sao hả bạn Ngày mai trời lại sáng ???
 
Có phát sinh thêm vật tư hay HD cũng không sao hả bạn Ngày mai trời lại sáng ???
Có lẽ bạn nên tự thử thêm mặt hàng, thêm nhập, thêm xuất, ... trước khi hỏi. Động tay động chân, động não 1 chút.
 
Có phát sinh thêm vật tư hay HD cũng không sao hả bạn Ngày mai trời lại sáng ???
Thoải mái bạn nhé. Thêm vật tư (Code Item) mới hay Hợp Đồng mới bao
nhiêu cũng được, không giới hạn và không phải chỉnh gì trong macro.
Bạn cứ nhập bình thường vào 2 sheet Nhập/Xuất (nhớ điền Tên HĐ cho dòng
Nhập và Tồn Đầu) rồi bấm nút — macro tự nhận Code và HĐ mới, tự thêm
vào bảng kết quả.

Chỉ cần gõ tên Code Item và Tên HĐ cho nhất quán (viết giống nhau) để
nó gộp đúng vào một mối.
 
À, xin lỗi bạn Ngày mai trời lại sáng, mình chỉ quan tâm các loại thép 1420120, 1620120, 2020120, 2520120 thôi vì các loại thép này có tồn và nhiều HD, còn các loại thép khác nhập bao nhiêu xuất bấy nhiêu (18,22,28,30,32,...vvv 90) nên không cần HD,mong bạn hiểu.
Thoải mái bạn nhé. Thêm vật tư (Code Item) mới hay Hợp Đồng mới bao
nhiêu cũng được, không giới hạn và không phải chỉnh gì trong macro.
Bạn cứ nhập bình thường vào 2 sheet Nhập/Xuất (nhớ điền Tên HĐ cho dòng
Nhập và Tồn Đầu) rồi bấm nút — macro tự nhận Code và HĐ mới, tự thêm
vào bảng kết quả.

Chỉ cần gõ tên Code Item và Tên HĐ cho nhất quán (viết giống nhau) để
nó gộp đúng vào một mối.
mai
Bài đã được tự động gộp:

Có lẽ bạn nên tự thử thêm mặt hàng, thêm nhập, thêm xuất, ... trước khi hỏi. Động tay động chân, động não 1 chút.
Xin lỗi thầy Phạm Thế Mỹ.!!!!
 
Xin lỗi bạn Ngày mai trời lại sáng,đúng là nhập vào phải có HD nha, Cám ơn bạn.
Bài đã được tự động gộp:

Đúng là AI vẫn thua con người, bài này nhờ AI cả tuần không làm ra. !!!!!
 
Lần chỉnh sửa cuối:
Cám ơn bạn Ngày mai trời lại sáng nha!!!!
Mình thử thấy OK rồi, sheet ChiTiet_LIFO là bảng phụ hả bạn,không làm gì trên sheet này phải không bạn. Cám ơn bạn nhiều.
Bài này dùng công thức chắc không được bạn nhỉ.
À, sao mấy số có dấu chấm đằng sau là sao bạn?
Bài đã được tự động gộp:

À bạn ơi,ở sheet Ton_LIFO mình copy tay từ sheet Nhap và Sheet Xuat qua rồi Sort tăng dần theo ngày đó, vậy code có thể làm luôn được không bạn Ngày mai trời lại sáng??
Về câu hỏi dùng công thức của bạn: được nha, Excel 2010 công thức thuần
vẫn tính được tồn LIFO theo HĐ, không cần hàm đời mới.

Mình gửi file demo: sheet "CongThuc" tính hoàn toàn bằng công thức (cột
phụ tô xám, cột H nhập bằng Ctrl+Shift+Enter), bên cạnh có bảng đối
chiếu với kết quả macro — khớp 100%. Bạn thử thêm giao dịch rồi bấm nút
"Cập nhật LIFO" sẽ thấy hai bên cùng đổi theo.

Tuy vậy dùng hằng ngày mình vẫn khuyên bản VBA: công thức không tự gộp
Nhập/Xuất và sort được, không có bảng truy vết, lại dễ hỏng khi chèn/xóa
dòng. Công thức xem như lời giải tham khảo cho vui thôi nhé.
 

File đính kèm

  • Yêu thích
Reactions: DMQ
Cám ơn bạn Ngày mai trời lại sáng!!!!
 
Chào các anh chị!!!!
Em có file Excel tính tồn theo Hợp Đồng (HD) của thép tấm,mong các anh chị giúp đỡ.
Trong file sheet Ton_LIFO em có mô tả,mong anh chị giúp.
Em Cám Ơn!!!
Với dữ liệu đẹp như sheet Ton_LiFo có thể dùng sub
Mã:
Sub TonLiFo()
  Dim aTon(), arr(), res(), dic As Object, sh As Worksheet
  Dim srTon&, sRow&, i&, r&, lR&, ik&, sl#, key$

  Set dic = CreateObject("Scripting.Dictionary")
  Set sh = Sheets("Ton_LIFO")
 
  lR = sh.Range("G" & Rows.Count).End(xlUp).Row
  If lR < 5 Then MsgBox ("Thieu du lieu ket qua!"): Exit Sub
  sh.Range("I5:I" & lR).ClearContents 'Xoa ket qua cu
  aTon = sh.Range("G5:H" & lR).Value
  srTon = UBound(aTon)
  ReDim res(1 To srTon, 1 To 1)
  For i = 1 To srTon
    dic(aTon(i, 1) & "_" & aTon(i, 2)) = i
  Next i
 
  lR = sh.Range("A" & Rows.Count).End(xlUp).Row
  If lR < 5 Then MsgBox ("Khong co du lieu!"): Exit Sub
  arr = sh.Range("A5:E" & lR).Value
  sRow = UBound(arr)
  For i = 1 To sRow
    sl = arr(i, 4)
    If arr(i, 2) Like "Xu?t" Then
      For r = i - 1 To 1 Step -1
        If Not (arr(r, 2) Like "Xu?t") Then
          If arr(i, 3) = arr(r, 3) And arr(r, 4) > 0 Then
            key = arr(r, 3) & "_" & arr(r, 5)
            If dic.exists(key) Then
              ik = dic(key) 'dong ket qua
              If arr(r, 4) >= sl Then
                res(ik, 1) = res(ik, 1) - sl
                arr(r, 4) = arr(r, 4) - sl
                sl = 0
                Exit For
              Else
                res(ik, 1) = res(ik, 1) - arr(r, 4)
                sl = sl - arr(r, 4)
                arr(r, 4) = 0
              End If
            End If
          End If
        End If
      Next r
      If r = 0 And sl > 0 Then
        MsgBox ("Item: " & arr(i, 3) & " Khong du hang ton kho de xuat!"): Exit Sub
      End If
    Else
      key = arr(i, 3) & "_" & arr(i, 5)
      If dic.exists(key) Then
        ik = dic(key)
        res(ik, 1) = res(ik, 1) + sl
      End If
    End If
  Next i
  sh.Range("I5").Resize(srTon) = res
End
Mã:
 

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

Back
Top Bottom