Public Sub Client()
Dim Dic As Object, sArr(), dArr(), Thang As Long
Dim I As Long, J As Long, K As Long, Col As Long, Rws As Long
Dim TK_No As String, TK_Co As String, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
With Sheets("NKC")
sArr = .Range(.[C5], .[C5].End(xlDown)).Resize(, 11).Value
Thang = .[D4].Value + 2
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To Thang + 2)
With Sheets("Client")
.Range("A6:O10000,B5:O5").Clear
TK_No = IIf(.[B1].Value = Empty, "*", .[B1].Value)
TK_Co = IIf(.[B2].Value = Empty, "*", .[B2].Value)
For I = 1 To UBound(sArr, 1)
If sArr(I, 6) Like TK_No & "*" Then
If sArr(I, 7) Like TK_Co & "*" Then
Tem = sArr(I, 3)
Col = Month(sArr(I, 1)) + 1
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, K
dArr(K, 1) = Tem
dArr(K, Col) = sArr(I, 8)
dArr(K, Thang) = sArr(I, 8)
Else
Rws = Dic.Item(Tem)
dArr(Rws, Col) = dArr(Rws, Col) + sArr(I, 8)
dArr(Rws, Thang) = dArr(Rws, Thang) + sArr(I, 8)
End If
End If
End If
Next I
If K Then
.[B5].Resize(, Thang - 2).Value = "=Column()-1"
.[B5].Resize(, Thang - 2).Value = .[B5].Resize(, Thang - 2).Value
.[A5].Offset(, Thang - 1).Value = "T" & ChrW(7892) & "NG"
.[A6].Resize(K, Thang).Value = dArr
.[A6].Resize(K, Thang).Sort Key1:=.[A6], Order1:=xlAscending
.[A6].Offset(K).Value = "T" & ChrW(7892) & "NG:"
.[B6].Offset(K).Resize(, Thang - 1).Value = "=SUM(R6C:R[-1]C)"
.[A6].Offset(K).Resize(, Thang).Interior.ColorIndex = 15
.[A6].Offset(K).Resize(, Thang).Font.Bold = True
.[B6].Resize(K + 1, Thang - 1).NumberFormat = "#,##0"
.Range("A5").Copy
.Range("B5").Resize(, Thang - 1).PasteSpecial Paste:=xlPasteFormats
.[B2].Select
Application.CutCopyMode = False
End If
[COLOR=#ff0000][B] .[A6].Offset(-1).Resize(K + 2, 14).Borders.LineStyle = 1[/B][/COLOR]
End With
Set Dic = Nothing
End Sub