Bạn Maika ơi, có cách nào tính NXT theo điều kiện khoảng thời gian, với kho ko ạChừ tiến bộ hơn 1 chút làm lại chỉ còn 2 việc thôi:
1/ Tính tổng nhập, xuất từ UNION 2 bảng Nhap va Xuat chép vào NXT
2/ Lấy số lượng tồn kho từ DM ghép với dữ liệu vừa chép ra NXT ở bước 1
Rich (BB code):Sub NXT2() Dim Ngay1 As String, Ngay2 As String, KHO As String Dim Rec As Object, dong As Long Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Sheet4.Range("G3:K5000").ClearContents Ngay1 = "#" & Sheet4.Range("I1") & "#" Ngay2 = "#" & Sheet4.Range("I2") & "#" KHO = "'" & Sheet4.Range("L1") & "'" Dim cnn As String cnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=No""" Set Rec = CreateObject("ADODB.Recordset") With Rec .Open ("Select F6,sum(F9),Sum(IIF(F1 LIKE 'PN%', F10,0)),Sum(IIF(F1 LIKE 'PX%', F11,0)) From (Select * From [Nhap$A4:N1017] Union All Select * From [Xuat$A4:N84]) Group By F6"), cnn Sheet4.Range("G3").CopyFromRecordset .DataSource dong = Sheet4.Range("G65536").End(xlUp).Row .Close .Open ("Select T1.F1,T1.F4,T2.F3,T2.F4 FROM [DM$A4:G849] as T1 LEFT JOIN [NXT$G3:J" & dong & "] as T2 ON T1.F1 = T2.F1 "), cnn Sheet4.Range("G3:K5000").ClearContents Sheet4.Range("G3").CopyFromRecordset .DataSource .Close End With Set Rec = Nothing Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
Vd: em lọc từ ngày 01/01/2019->01/01/2019, với kho A, thì báo cáo tự động cập nhật ạ,
Cám ơn bạn