Khi hết mỗi tháng thì tự động tính tổng

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

cuongdv

Thành viên mới
Tham gia
26/11/08
Bài viết
38
Được thích
6
Các bạn giúp mình file này với.
Mình muốn Sheet Báo cáo mỗi khi cập nhật dữ liệu thì sẽ tính đc ra tổng từng tháng (không tính cho từng mặt hàng riêng biệt)+-+-+-+
Yêu cầu cụ thể trong file
cảm ơn các bạn nhiều!
 

File đính kèm

Lần chỉnh sửa cuối:
Các bạn giúp mình file này với.
Mình muốn Sheet Báo cáo mỗi khi cập nhật dữ liệu thì sẽ tính đc ra tổng từng tháng (không tính cho từng mặt hàng riêng biệt)+-+-+-+
Yêu cầu cụ thể trong file
cảm ơn các bạn nhiều!
Cái này ta dùng PivotTable 1 nhát là ra, cần gì code hả bạn

untitled.JPG
 

File đính kèm

Upvote 0
Cái này ta dùng PivotTable 1 nhát là ra, cần gì code hả bạn

View attachment 54893
Cảm ơn anh NDU đã quan tâm, vấn đề là em muốn nghiên cứu và ứng dụng cho file khác của mình.
Mình muốn hỏi là nếu mình làm code lọc được dữ liệu từ sheet Dulieu sang sheet Baocao rồi (file đó là 1 ví dụ minh hoạ đơn cho đơn giản), và bây giờ mình muốn thêm đoạn code để nó tính tổng cho từng tháng luôn, mình không phải làm thêm động tác lọc nữa.
Phiền bạn giúp đỡ. Cảm ơn!
 
Upvote 0
Với file trên, em dùng code này để lọc
Sub Tonghop()
On Error Resume Next
Dim HC As Long
Dim i As Long
Dim k As Long
Dim ND As Date
Dim NC As Date
Dim Ma As Range
Dim Tim As Boolean

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'Application.EnableEvents = False
HC = S02.Range("D65500").End(xlUp).Row

S02.Select
S02.Range("A8:L" & HC + 1).ClearContents
S02.Range("A9:L" & HC + 2).Select

ND = S02.Range("F3").Value
NC = S02.Range("H3").Value
HC = S01.Range("B65000").End(xlUp).Row
Tim = False
i = 7
k = 7
For Each Ma In S01.Range("B8:B" & HC)


If Ma.Offset(0, -1).Value >= ND And Ma.Offset(0, -1).Value <= NC Then
If Ma.Offset(0, 1) = S02.Range("A3") Then Tim = True
If Tim = True Then
'i = i + 1
If Left(Ma, 1) = "M" Then
i = i + 1
Range("A" & i) = Ma.Offset(0, -1)
Range("B" & i) = Right(Ma, Len(Ma) - 1)
Range("C" & i) = Ma.Offset(0, 2)
Range("D" & i) = Ma.Offset(0, 3)
Range("E" & i) = Ma.Offset(0, 4)
Else
k = k + 1
Range("F" & k) = Ma.Offset(0, -1)
Range("G" & k) = Right(Ma, Len(Ma) - 1)
Range("H" & k) = Ma.Offset(0, 3)
Range("I" & k) = Ma.Offset(0, 5)
Range("J" & k) = Ma.Offset(0, 6)
Range("K" & k) = Ma.Offset(0, 7)

End If: End If: End If
Tim = False
Next
If i < 10 Then i = 10
S02.Range("C" & i + 2) = UNC("Tæng céng")
S02.Range("D" & i + 2) = WorksheetFunction.Sum(S02.Range("D8:D" & i))
S02.Range("E" & i + 2) = WorksheetFunction.Sum(S02.Range("E8:E" & i))
S02.Range("H" & i + 2) = WorksheetFunction.Sum(S02.Range("H8:H" & i))
S02.Range("I" & i + 2) = WorksheetFunction.Sum(S02.Range("I8:I" & i))
S02.Range("K" & i + 2) = WorksheetFunction.Sum(S02.Range("K8:K" & i))
S02.Range("L" & i + 2) = WorksheetFunction.Sum(S02.Range("D" & i + 2, "E" & i + 2)) - _
S02.Range("H" & i + 2)

S02.Range("A9:L" & i + 1).Select
S02.Range("A" & i + 2 & ":L" & i + 2).Select
'S02.Range("K" & i + 5) = UNC("Ng­êi lËp")
'S02.Range("D" & i + 5) = UNC("Gi¸m ®èc")
' S02.Range("A" & i + 5 & ":L" & i + 5).Select
Range("A3").Select
'Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Set Ma = Nothing
End Sub
Nhưng giờ em muốn khi lọc ra, mỗi khi liệt kê dữ liệu hết tháng thì sẽ tính ra tổng của tháng đó, rồi mới liệt kê tiếp dữ liệu của tháng sau (Với code này thì nó chỉ tính tổng ở cuối dữ liệu). Các bạn giúp mình với. cảm ơn nhiều.
 
Upvote 0
Các bạn giúp mình file này với.
Mình muốn Sheet Báo cáo mỗi khi cập nhật dữ liệu thì sẽ tính đc ra tổng từng tháng (không tính cho từng mặt hàng riêng biệt)+-+-+-+
Yêu cầu cụ thể trong file
cảm ơn các bạn nhiều!
Thử code này xem sao
Mã:
Public Sub AA()
    Dim Ws, Wf, Vung As Range, I As Integer, Tam As Integer, sHang As Range
    Application.ScreenUpdating = False
        Set Ws = Sheets("dulieu"): Set Wf = Application.WorksheetFunction
        Set Vung = Ws.Range(Ws.[a2], Ws.[a5000].End(xlUp))
        [a10:e5000].Clear
        Ws.Columns("C:C").EntireColumn.Hidden = True
        Vung.Offset(, 6).FormulaR1C1 = "=IF(RC[-6]="""","""",MONTH(RC[-6]))"
            For I = 1 To 12
                With Vung.Resize(, 7)
                    Tam = Wf.CountIf(Vung.Offset(, 6), I)
                    If Tam > 0 Then
                        .AutoFilter 7, I
                        .SpecialCells(12).Copy [a1000].End(xlUp)(3)
                        Set sHang = Range([d1000].End(xlUp), [d1000].End(xlUp).Offset(-(Tam - 1)))
                            With [d1000].End(xlUp)(2)
                                .Value = Wf.Sum(sHang)
                                .Interior.ColorIndex = 4
                                .Offset(, 1).Value = Wf.Sum(sHang.Offset(, 1))
                                .Offset(, 1).Interior.ColorIndex = 4
                                .Offset(, -1) = "Tong công tháng " & I
                                .Offset(, -1).Interior.ColorIndex = 6
                            End With
                    End If
                        .AutoFilter
                End With
        Tam = 0
    Next
    [f11:f1000].ClearContents
    Ws.Columns("C:C").EntireColumn.Hidden = False
    Ws.[g2:g5000].ClearContents
    Application.ScreenUpdating = True
End Sub
Thân
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom