Sub CopyColRange()
Dim i, x, rowT, startRow, Cnt, CntProgress, ModOps As Long
Dim ColStart, ColEnd, ArraySize As Integer
Dim mydata() As Variant
ColStart = 4 ' let's assume you have record on the Fourth Column,
ColEnd = 10
ArraySize = (ColEnd - ColStart) -1
startRow = 2 ' let's assume that record start on the second row
Cnt = -1 ' This will be used for an array, first array increment is zero
For i = 1 To Worksheets.Count
rowT = Worksheets(i).Cells(Rows.Count, ColStart).End(xlUp).Row
For x = startRow To rowT
Cnt = Cnt + 1
For z = 0 To ArraySize
ReDim Preserve mydata(ArraySize, Cnt)
mydata(z, Cnt) = Worksheets(i).Cells(x, ColStart + z).Value
Next z
ModOps = x Mod 100
If ModOps = 0 Then Debug.Print "Worksheet: " & Worksheets(i).Name, Round((i / Worksheets.Count) * 100, 2), Round((x / Cnt) * 100, 2)
Next x
Next i
' when completed drop eveyrthing in targetr
For x = LBound(mydata) To UBound(mydata)
For z = 0 To ArraySize
Worksheets("MyPlace").Cells(x + 1, z + 1).Value = mydata(z, x)
Next z
ModOps = x Mod 100
If ModOps = 0 Then Debug.Print "Pasting Data in place: ", Round((x / Cnt) * 100, 2)
Next x
Erase mydata
End Sub