Sub compil()
Dim i&, k&, prm(), plg As Range
prm = Array(Array("Compil", 8, "A:W", "B"), Array("A", 8), Array("B", 8), Array("C", 8))
For i = 1 To UBound(prm)
With Worksheets(prm(i)(0))
Set plg = Intersect(.Cells(prm(i)(1), .Columns(prm(0)(2)).Column).CurrentRegion, .Rows(prm(i)(1)).Resize(.Rows.Count - prm(i)(1)), .Columns(prm(0)(2)))
End With
With Worksheets(prm(0)(0)).Cells(prm(0)(1), Columns(prm(0)(3)).Column)
plg.Copy Destination:=.Offset(k)
.Offset(k, -1).Resize(plg.Rows.Count).Value = prm(i)(0)
k = k + plg.Rows.Count
End With
Next
End Sub