Code tạo báo cáo của thẻ kho (1 người xem)

  • Thread starter Thread starter NH_DK
  • Ngày gửi Ngày gửi
Liên hệ QC

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

NH_DK

Let's patience
Tham gia
29/7/10
Bài viết
865
Được thích
1,204
Nghề nghiệp
Kế toán
Chào AC! Có lẽ lâu rùi em không sử dụng đến VBA. Hiện tại em đang làm 1 file thẻ kho (như file đính kèm) để quản lý kho hàng của công ty. Em nhờ AC thiết lập dùm cho em đoạn code tạo báo cáo của thẻ kho. Câu hỏi cụ thể trong file đính kèm!
Cám ơn AC nhiều!
 

File đính kèm

Em chép Code này vào phần Edit VBA của sheet STOCKCARD rồi thay đổi ngày tháng, mã hangf xem sao:

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If InStr(1, "$E$4,$E$5,$C$7", Target.Address) > 0 Then StockCard
End Sub

'-----------------------------------------

Sub StockCard()
Dim Tmp, Fil1, Fil2, Fil3, i, j, n
Dim Dk, Ps1, Ps2, Ck, Kq(1 To 1000, 1 To 7)
If Not IsDate([E4]) Or Not IsDate([E5]) Then
MsgBox "Sai ngay thang"
Exit Sub
End If
[G6:G9].ClearContents
[A13:G1000].ClearContents
Fil1 = [E4]: Fil2 = [E5]: Fil3 = [C7]
[G6] = Evaluate("Vlookup(" & Chr(34) & Fil3 & Chr(34) & ",LIST!A2:D1000,4,0)")
[C8] = Evaluate("Vlookup(" & Chr(34) & Fil3 & Chr(34) & ",LIST!A2:D1000,2,0)")
[C9] = Evaluate("Vlookup(" & Chr(34) & Fil3 & Chr(34) & ",LIST!A2:D1000,3,0)")
Dk = [G6]
Tmp = Sheet1.Range(Sheet1.[A2], Sheet1.[A65536].End(3)).Resize(, 11)
For i = 1 To UBound(Tmp, 1)
If Tmp(i, 1) >= Fil1 And Tmp(i, 1) <= Fil2 And Tmp(i, 7) = Fil3 Then
n = n + 1
For j = 1 To 6
Kq(n, j) = Tmp(i, IIf(j > 4, j + 5, j))
Next
Ps1 = Ps1 + Tmp(i, 10)
Ps2 = Ps2 + Tmp(i, 11)
Kq(n, 7) = Dk + Ps1 - Ps2
End If
Next
[A13:G1000] = Kq
[G7] = Ps1: [G8] = Ps2: [G9] = Dk + Ps1 - Ps2
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom