Option Explicit
[B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
If Not Intersect(Target, [c3]) Is Nothing Then
Dim Sh As Worksheet, Rng As Range, sRng As Range
Dim MyAdd As String, GPE As String
Dim eRw As Long, Dg As Long, Thu As Byte, Tiet As Byte, Sang As Byte, Ch As Byte
Set Sh = ThisWorkbook.Worksheets("3-1")
2 [c7].Resize(10, 7).Clear '[COLOR=blue]***[/COLOR]'
eRw = Sh.[B65500].End(xlUp).Row
Set Rng = Sh.[c4].Resize(eRw, 36)
Rng.Interior.ColorIndex = 0
Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Do
Dg = sRng.Row: If sRng.Column > 20 Then Sang = 5
Ch = Switch(Dg < 9, 3, Dg < 15, 9, Dg < 21, 15, Dg < 27, 21, Dg < 33, 27, Dg < 39, 33)
Tiet = Dg - Ch
Thu = Choose(Ch \ 3, 1, , 2, , 3, , 4, , 5, , 6)
Dg = sRng.Column
GPE = "'1" & Switch(Dg < 13, "2", Dg < 25, "1", Dg > 25, "0") & "-"
9 If [b6].Offset(Tiet + Sang, Thu).Value <> "" Then _
[b6].Offset(Tiet + Sang, Thu).Interior.ColorIndex = 3 '[COLOR=blue]<=|[/COLOR]'
[b6].Offset(Tiet + Sang, Thu).Value = GPE & Sh.Cells(3, Dg).Value
sRng.Interior.ColorIndex = 34 + Range("DSGV").Find(Target.Value).Row Mod 8
Set sRng = Rng.FindNext(sRng): Sang = 0
Loop While Not sRng Is Nothing And MyAdd <> sRng.Address
Else
MsgBox "?"
End If
End If
[B]End Sub[/B]