Private Sub BNT_Print_Click()
Dim arrData, arrFilterData As Variant
Dim lr, iCount, i, j, k As Long
Dim Dic As Object
Dim sKey, myFile As String
Set Dic = CreateObject("Scripting.Dictionary")
'//BAY LOI
If ComboBox1_Print.Value = "" Then
MsgBox "Input error", vbOKOnly
Exit Sub
End If
'//INPUT
With ThisWorkbook.Sheets("File Quan Ly")
lr = .Cells(.Rows.Count, "A").End(xlUp).Row
arrData = .Range("A2:M" & lr).Value
End With
'//PROCESS
'//VONG LAP MANG DE KIEM TRA DIC
Application.ScreenUpdating = False
For i = LBound(arrData, 1) To UBound(arrData, 1)
ReDim arrFilterData(1 To UBound(arrData, 2), 1 To 1)
'//CHECK DIEU KIEN NHOM
sKey = arrData(i, 3)
If Dic.exists(sKey) = False And arrData(i, 5) = ComboBox1_Print.Value Then
'//VONG LAP DE NAP MANG
For k = LBound(arrData, 1) To UBound(arrData, 1)
'//KIEM TRA DIEU KIEN NHOM VA TEN NHAN VIEN
If arrData(k, 3) = sKey And arrData(k, 5) = ComboBox1_Print.Value Then
iCount = iCount + 1
'//TANG KICH THUOC MANG NAP
ReDim Preserve arrFilterData(1 To UBound(arrData, 2), 1 To iCount)
'//VONG LAP COT MANG
For j = LBound(arrData, 2) To UBound(arrData, 2)
arrFilterData(j, iCount) = arrData(i, j)
Next j
End If
Next k
'//RESET DU LIEU, CHUAN BI CHO VONG LAP MOI
Dic.Add sKey, sKey
iCount = 0
'//DAO CHIEU MANG
arrFilterData = WorksheetFunction.Transpose(arrFilterData)
'//OUTPUT
With ThisWorkbook.Sheets("Print")
'//BAY LOI
lr = .Cells(.Rows.Count, "A").End(xlUp).Row
If lr = 1 Then lr = 2
.Range("A2:M" & lr).ClearContents
'//NAP VAO SHEET
.Range("A2:M" & UBound(arrFilterData, 1) + 1) = arrFilterData
.Activate
''----------------------------------
'//LENH IN CUA BAN
'//NEU CHON IN A4
If OptionButton2.Value = True Then
'//CHINH CAU HINH IN O DAY
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'//NEU CHON IN PDF
ElseIf OptionButton1.Value = True Then
'//CHINH VỊ TRÍ LƯU PDF VÀ TÊN FILE Ở ĐÂY
myFile = ThisWorkbook.Path & "\" & sKey & " - " & ComboBox1_Print.Value & ".pdf"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=myFile
End If
''----------------------------------
End With
End If
Next i
Application.ScreenUpdating = True
MsgBox "Complete" '//THONG BAO
End Sub