Option Explicit
Dim Arr()
Sub GPE4S()
Dim Sh As Worksheet
Dim J As Byte, Dg As Long, Rws As Long, Dem As Long, fRws As Long, hRw As Long
Dim ShName As String
Rows("4:200").Hidden = False: Randomize
For J = 1 To 4
ShName = Right("00" & CStr(J), 3)
Set Sh = ThisWorkbook.Worksheets(ShName)
Rws = Sh.[B4].CurrentRegion.Rows.Count
Arr() = Sh.[B4].Resize(Rws, 3).Value
ReDim dArr(1 To Rws, 1 To 5)
For Dg = 1 To UBound(Arr())
If Arr(Dg, 1) <> "" Then
Dem = Dem + 1
dArr(Dem, 1) = Dem: dArr(Dem, 2) = Arr(Dg, 1)
dArr(Dem, 3) = Arr(Dg, 3) * Arr(Dg, 2)
dArr(Dem, 5) = Arr(Dg, 3): dArr(Dem, 4) = Arr(Dg, 2)
End If
Next Dg
fRws = Choose(J, 4, 54, 104, 154)
Cells(fRws - 2, 5).Interior.ColorIndex = 31 + 9 * Rnd() \ 1
If Dem Then
Sheets("BC").Cells(fRws, "A").Resize(Dem, 5).Value = dArr()
Dem = 0
Rows(Cells(fRws, "A").End(xlDown).Row + 1 & ":" & fRws + 44).Hidden = True
End If
Next J
End Sub