Option Explicit
Sub CopyAll()
1 Dim Rng As Range, sRng As Range, Cls As Range, Rg0 As Range, dRg As Range
Dim fAdd As String, TFHF As String: Dim J As Byte
3 Sheets("GPE").Select: Set dRg = [AA1]
Set Rng = Range([c6], [c65500].End(xlUp))
Columns("G:I").ClearContents
Application.ScreenUpdating = False
For J = 1 To 3
TFHF = Cells(Choose(J, 5, 7, 9), "AA").Value
Set sRng = Rng.Find(TFHF, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
fAdd = sRng.Address
Do
Cells(sRng.Row, "G").Value = sRng.Value
14 Set dRg = Union(dRg, sRng)
Set Rg0 = sRng.Offset(1, -1).Resize(13)
For Each Cls In Rg0
If Cls.Value = "" Then Exit For
Cells(Cls.Row, "G").Resize(, 3).Value = Cls.Offset(, 1).Resize(, 3).Value
19 Set dRg = Union(dRg, Cls.Offset(, 1).Resize(, 3)) '<=|'
Next Cls
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> fAdd
End If
Next J
25 If Not dRg Is Nothing Then dRg.Value = ""
Application.ScreenUpdating = True
Randomize
[G5].Resize(2, 3).Interior.ColorIndex = 34 + 9 * Rnd \ 1
End Sub