Private Sub Worksheet_Change(ByVal Target As Range)
Dim Dulieu, Ketqua, I As Long, K As Long, Ivl As Long, Inc As Long, Imay As Long
Dim VL As String, Nc As String, May As String, LaMa As Long
Dim Ma As String, Mahieu As String
VL = "V" & ChrW$(7853) & "t li" & ChrW$(7879) & "u"
Nc = "Nh" & ChrW$(226) & "n c" & ChrW$(244) & "ng"
May = "M" & ChrW$(225) & "y"
On Error Resume Next
If Not Intersect(Target, [B7:B10000]) Is Nothing Then
If Target.Count = 1 Then
Mahieu = Sheets("XuatDL").Range("B" & Target.Row)
With Sheets("CSDL DM")
Dulieu = .Range("B5", .Range("B65535").End(3)).Resize(, 6) ' Chon vung DL dinh muc tu o B5 den G...
End With
ReDim Ketqua(1 To UBound(Dulieu), 1 To 6)
For I = 1 To UBound(Dulieu)
Ma = Dulieu(I, 1) ' Ma = Ma hieu cong viec o cot 1 cua Mang DuLieu
If Ma = Mahieu Then
K = K + 1
If K = 1 Then ' Chay dong dau tien, tim ten CV, DVT, KL = 1
Ketqua(K, 2) = "=VLOOKUP(RC[-2],'CSDL tenCV'!R5C2:R1800C4,2,0)" ' Tim ten CV trong CSDL tenCV
Ketqua(K, 3) = "=VLOOKUP(RC[-3],'CSDL tenCV'!R5C2:R1800C4,3,0)" ' Tim DVT cua cong viec trong CSDL tenCV
Ketqua(K, 4) = 1 ' Gan Khoi luong = 1
End If
If K > 1 Then ' Chay dong thu 2, xuat mang KET QUA tu mang Du Lieu
If Dulieu(I, 4) = VL Then ' Neu cot so 4 cua sheet CSDL DM la VAT LIEU thi lam ....
Ivl = Ivl + 1
If Ivl = 1 Then
Ketqua(K, 2) = ChrW(97) & "). " & VL ' Danh chu a). Vat Lieu
K = K + 1
End If
Ketqua(K, 1) = Dulieu(I, 2): Ketqua(K, 2) = Dulieu(I, 5): Ketqua(K, 5) = Dulieu(I, 3)
End If
If Dulieu(I, 4) = Nc Then
Inc = Inc + 1
If Inc = 1 Then
Ketqua(K, 2) = ChrW(98) & "). " & Nc ' Danh chu b). Nhan Cong
K = K + 1
End If
Ketqua(K, 1) = Dulieu(I, 2): Ketqua(K, 2) = Dulieu(I, 5): Ketqua(K, 5) = Dulieu(I, 3)
End If
If Dulieu(I, 4) = May Then
Imay = Imay + 1
If Imay = 1 Then
Ketqua(K, 2) = ChrW(99) & "). " & May ' Danh chu c). May
K = K + 1
End If
Ketqua(K, 1) = Dulieu(I, 2): Ketqua(K, 2) = Dulieu(I, 5): Ketqua(K, 5) = Dulieu(I, 3)
End If
End If
End If
Next I
If K Then
Target.Offset(, 1).Resize(K, 5) = Ketqua
Range("A" & Target.Row & ":G" & Target.Row).Resize(K).Borders.LineStyle = 1
Range("A" & Target.Row & ":G" & Target.Row).Resize(K).Borders(xlInsideHorizontal).Weight = xlHairline
Else
MsgBox "Khong tim thay"
End If
End If
End If
End Sub