Rùa Con 1080
Thành Viên Sao Chép 2
- Tham gia
- 4/5/16
- Bài viết
- 351
- Được thích
- 47
- Giới tính
- Nữ
Bạn xem thử. Cái Tồn đầu kỳ mình không biết làmChào mọi người, em có file excel này, mong mọi người giúp viết code để lọc theo mã số, theo tháng, theo năm ah!
Trong file có chi tiết (sheet Xem)
Sub tonghop()
Dim sArr(), tArr(), dArr(), I As Long, K As Long
Dim Dic As Object, Tem As String, R As Long
Dim Thang As Long, Nam As Long
Thang = Sheet3.Range("B2"): Nam = Sheet3.Range("D2")
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
tArr = .Range("A3", .Range("F65535").End(3)).Value
End With
For I = 1 To UBound(tArr)
Tem = Month(tArr(I, 1)) & Year(tArr(I, 1)) & tArr(I, 5)
Dic.Item(Tem) = I
Next I
With Sheet2
sArr = .Range("A3", .Range("F65535").End(3)).Value
End With
ReDim dArr(1 To UBound(sArr), 1 To 5)
For I = 1 To UBound(sArr)
If Month(sArr(I, 1)) & Year(sArr(I, 1)) = Thang & Nam Then
Tem = Month(sArr(I, 1)) & Year(sArr(I, 1)) & sArr(I, 5)
R = Dic.Item(Tem)
If R Then
K = K + 1
dArr(K, 1) = tArr(R, 5)
dArr(K, 3) = tArr(R, 6)
dArr(K, 4) = sArr(R, 6)
dArr(K, 5) = dArr(K, 2) + dArr(K, 3) - dArr(K, 4)
End If
End If
Next I
With Sheet3
If K Then
.Range("A5:E1000").ClearContents
.Range("A5").Resize(K, 5) = dArr
End If
End With
Set Dic = Nothing
End Sub
thật là thiếu sót về việc năm còn "Cữ các Loại" mã số "cuccll" là 2000 là thế nào nhỉ bạn ??Cám ơn Anh dazkangel, nhưng file của em dữ lieu nhiều, mong anh giúp viết code.
Trong file của anh còn lọc thiếu, như tháng 3 năm 2016 còn có xuất "Cữ các Loại" mã số "cuccll" là 2000, và anh viết cho tìm cả năm 2017 luôn.
à mình không biết về VBA tiếc thật, chào bạn.Cám ơn Anh dazkangel, nhưng file của em dữ lieu nhiều, mong anh giúp viết code.
Trong file của anh còn lọc thiếu, như tháng 3 năm 2016 còn có xuất "Cữ các Loại" mã số "cuccll" là 2000, và anh viết cho tìm cả năm 2017 luôn.
thì chỉ cần nhập mã vào kéo công thức xuống là được hết.Cám ơn Bạn dazkangel, trong file của mình co tất cả 5 loại mã số.nếu bạn đưa ra hết 5 loại đó thì sẽ có "cuccll" = 2000 vào tháng 3 năm 2016.
Mà file bạn là lọc tổng nhập và xuất trong tháng ,năm, nhưng không có"Tồn đầu" của từng mã số theo tháng, năm.
Tức là bạn muốn :Cám ơn Bạn dazkangel, trong file của mình co tất cả 5 loại mã số.nếu bạn đưa ra hết 5 loại đó thì sẽ có "cuccll" = 2000 vào tháng 3 năm 2016.
Mà file bạn là lọc tổng nhập và xuất trong tháng ,năm, nhưng không có"Tồn đầu" của từng mã số theo tháng, năm.
xem thử fileChào mọi người, em có file excel này, mong mọi người giúp viết code để lọc theo mã số, theo tháng, theo năm ah!
Trong file có chi tiết (sheet Xem)
Code này của anh chưa đúng thì phải, nguyên tắc là tồn cuối tháng trước=tồn đầu tháng sau, anh chạy tháng 6,7 thử xem, tồn cuối t06<> tồn đầu t07Tức là bạn muốn :
- Chỉ xem những mã có nhập xuất trong Tháng/Năm được chọn?
- Chỉ xem luôn giá trị tồn của những mã này trước Tháng/Năm chọn?
- Các mã không Nhập/Xuất trong Tháng/Năm chọn thì không quan tâm tới?
mình không hiểu rõ tồn khó nó tính thế nào nếu gom cả mảng của tất cả các tháng trước đó thì -_-Bài này làm công thức dễ hơn đấy, và cũng không chậm lắm!!!
Tồn kho tính dễ mà, nhập xuất thì sumif trong giai đoạn đó, còn tồn đầu thì sumif nhỏ hơn giai đoạn đó lấy nhập -xuất là ra thôi, tính toán số thì không khó dùng sumif là được, sợ chỗ lấy mã số hàng hóa không trùng hơi nặng với dữ liệu nhiều thôi.mình không hiểu rõ tồn khó nó tính thế nào nếu gom cả mảng của tất cả các tháng trước đó thì -_-
chủ yếu là cảm thấy thiết kế không hợp ly.
với ý mình nói là bạn học VBA nhanh quá, chứ không đề cập đến tốc độ công thức![]()