Xin Chỉ Giáo cách làm báo cáo. thay hàm sumifs bằng code trích lọc theo từng kho và khoảng thời gian

Liên hệ QC

luan151288

Thành viên mới
Tham gia
1/6/20
Bài viết
2
Được thích
0
Tình hình là em làm file excel như thế, nhưng khi làm báo cáo tổng xuất nhập tồn thì file trở nên quá nặng. tất cả trong báo cáo e đều phải dùng sumifs thì bộ file phình to không kiểm soát đc.
 

File đính kèm

  • FILE EXCEL.xlsx
    283.1 KB · Đọc: 9
Tình hình là em làm file excel như thế, nhưng khi làm báo cáo tổng xuất nhập tồn thì file trở nên quá nặng. tất cả trong báo cáo e đều phải dùng sumifs thì bộ file phình to không kiểm soát đc.
Lấy file làm tay mà gửi đi bạn. Cái của bạn có dùng addin mà người khác không dùng nên không đọc được.
---
Có lẽ sửa tiêu đề "thay sumifs bằng code" phù hợp hơn
 
Upvote 0
Lấy file làm tay mà gửi đi bạn. Cái của bạn có dùng addin mà người khác không dùng nên không đọc được.
---
Có lẽ sửa tiêu đề "thay sumifs bằng code" phù hợp hơn
file E đã loại bỏ hết các add in, vấn đề của e là bảng báo cáo xuất nhập tồn lại quá nặng, nảy sinh vấn đề về tốc độ nhập liệu mới. đây chỉ mới là dữ liệu 1 ngày, nhưng e phải giải quyết vấn đề cho 1 tháng, sheet QL_KHO của e trong 1 tháng tầm 20.000 dòng
 

File đính kèm

  • FILE EXCEL.xlsx
    282.3 KB · Đọc: 23
Upvote 0
file E đã loại bỏ hết các add in, vấn đề của e là bảng báo cáo xuất nhập tồn lại quá nặng, nảy sinh vấn đề về tốc độ nhập liệu mới. đây chỉ mới là dữ liệu 1 ngày, nhưng e phải giải quyết vấn đề cho 1 tháng, sheet QL_KHO của e trong 1 tháng tầm 20.000 dòng
Bạn nên sửa lại tiêu đề cho phù hợp, không thì sẽ bị xóa bài đấy.
 
Upvote 0
file E đã loại bỏ hết các add in, vấn đề của e là bảng báo cáo xuất nhập tồn lại quá nặng, nảy sinh vấn đề về tốc độ nhập liệu mới. đây chỉ mới là dữ liệu 1 ngày, nhưng e phải giải quyết vấn đề cho 1 tháng, sheet QL_KHO của e trong 1 tháng tầm 20.000 dòng
Bạn thử code này
Mã:
Sub baocao_Xuat_Nhap_Ton()
Dim Kho, Mh, Nv
Dim tam
Dim GtNhap, SlNhap, SlXuat, SlHuy
Dim dau, cuoi, tenkho
Dim rws, i, j, k
With Sheet3
    rws = .Range("B" & Rows.Count).End(xlUp).Row
    Kho = .Range("B4:L" & rws)
    rws = UBound(Kho)
End With
With Sheet6
    dau = .Range("D3")
    cuoi = .Range("F3")
    tenkho = .Range("D4")
    Mh = .Range("A7", Sheet6.Range("A7").End(xlDown))
End With
Nv = Array("Nh" & ChrW(7853) & "p", "Xu" & ChrW(7845) & "t", "H" & ChrW(7911) & "y")
With CreateObject("Scripting.Dictionary")
    For i = 1 To rws
        If Kho(i, 1) >= dau And Kho(i, 1) <= cuoi And Kho(i, 6) = tenkho Then
            If .exists(Kho(i, 2)) = 0 Then
                ReDim tam(5)
                For j = 0 To 2
                    If Kho(i, 8) = Nv(j) Then
                        tam(j) = Kho(i, 9)
                        tam(j + 3) = Kho(i, 11)
                        .Add Kho(i, 2), tam
                        Exit For
                    End If
                Next j
            Else
                tam = .Item(Kho(i, 2))
                For j = 0 To 2
                    If Kho(i, 8) = Nv(j) Then
                        tam(j) = tam(j) + Kho(i, 9)
                        tam(j + 3) = tam(j + 3) + Kho(i, 11)
                        .Item(Kho(i, 2)) = tam
                        Exit For
                    End If
                Next j
            End If
        End If
    Next i
    rws = UBound(Mh)
    ReDim GtNhap(1 To rws, 1 To 1)
    ReDim SlNhap(1 To rws, 1 To 1)
    ReDim SlXuat(1 To rws, 1 To 1)
    ReDim SlHuy(1 To rws, 1 To 1)
    For i = 1 To rws
        If .exists(Mh(i, 1)) Then
            tam = .Item(Mh(i, 1))
            GtNhap(i, 1) = tam(3)
            SlNhap(i, 1) = tam(0)
            SlXuat(i, 1) = tam(1)
            SlHuy(i, 1) = tam(2)
        End If
    Next i
End With
With Sheet6
    .Range("C7").Resize(rws, 1) = GtNhap
    .Range("F7").Resize(rws, 1) = SlNhap
    .Range("G7").Resize(rws, 1) = SlXuat
    .Range("H7").Resize(rws, 1) = SlHuy
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
1 tháng 20.000 phát sinhn xuất nhập --> một ngày gần 700 bận. Kho này không nhỏ đâu nghen (trừ phi là cửa hàng bánh kẹp)

Với dữ liệu này thì người quản lý báo cáo kho phải có tầm cỡ. Tối thiểu là phải tự viết code được và chỉ hỏi chỗ bí.
Đúng trình độ thì phải có khả năng thiết kế lại cho bớt "nặng".
 
Upvote 0
Web KT

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

Back
Top Bottom