Option Explicit: Option Base 1
Sub BaoCaoThang()
Dim lRow As Long, SoNV As Long, jJ As Long, Zz As Long
Dim Thang As Byte, Nam As Integer
Application.ScreenUpdating = False
With Sheets("CSDL")
SoNV = .[b65432].End(xlUp).Row: ReDim MDL(SoNV, 6)
For jJ = 1 To SoNV - 1
MDL(jJ, 1) = .Cells(jJ + 1, 4): MDL(jJ, 2) = .Cells(jJ + 1, 2)
MDL(jJ, 3) = .Cells(jJ + 1, 3)
Next jJ
End With
Thang = [b1]: Nam = [b2]
With Sheets("ViPham")
lRow = .[b65432].End(xlUp).Row
For jJ = 2 To lRow
If Month(.Cells(jJ, 6)) = Thang And Year(.Cells(jJ, 6)) = Nam Then
For Zz = 1 To SoNV
If .Cells(jJ, 2) = MDL(Zz, 1) Then
MDL(Zz, 4) = MDL(Zz, 4) + .Cells(jJ, 8)
Exit For
End If
Next Zz
End If
Next jJ
End With
With Sheets("Dienthoai")
lRow = .[b65432].End(xlUp).Row
For jJ = 2 To lRow
If Month(.Cells(jJ, 5)) = Thang And Year(.Cells(jJ, 5)) = Nam Then
For Zz = 1 To SoNV
If .Cells(jJ, 2) = MDL(Zz, 2) Then
MDL(Zz, 4) = MDL(Zz, 4) + .Cells(jJ, 7)
Exit For
End If
Next Zz
End If
Next jJ
End With
With Sheets("ChamCong")
lRow = .[b65432].End(xlUp).Row
For jJ = 3 To lRow
If Month(.Cells(jJ, 7)) = Thang And Year(.Cells(jJ, 7)) = Nam Then
For Zz = 1 To SoNV
If .Cells(jJ, 5) = MDL(Zz, 1) Then
MDL(Zz, 4) = MDL(Zz, 4) + .Cells(jJ, 12)
MsgBox .Cells(jJ, 13)
MDL(Zz, 6) = MDL(Zz, 6) + .Cells(jJ, 13)
Exit For
End If
Next Zz
End If
Next jJ
End With
' * * * * * * '
Range("C6:H" & SoNV + 9).Clear
For jJ = 6 To SoNV + 5
Cells(jJ, 4) = MDL(jJ - 5, 2): Cells(jJ, 5) = MDL(jJ - 5, 3)
Cells(jJ, 6) = MDL(jJ - 5, 4)
Cells(jJ, 8) = MDL(jJ - 5, 6)
Next jJ
End Sub