Give this a try
Option Explicit
Sub abc()
Const shData As String = "sheet1"
Const LastColumn As String = "T"
Dim a, b, i As Long, ii As Long, iii As Long, n As Long
Dim sCustID As String
With Worksheets(shData)
a = .Range("a1", .Cells(.UsedRange.Rows.Count, LastColumn))
End With
ReDim b(1 To UBound(a), 1 To UBound(a, 2))
For i = 1 To UBound(a)
If Trim$(a(i, 1)) = "Customer:" Then
sCustID = a(i, 4)
n = n + 1
b(n, 1) = sCustID
b(n, 2) = Trim$(a(i + 3, 1))
b(n, 4) = Trim$(a(i + 3, 4))
For iii = 5 To UBound(a, 2)
b(n, iii) = Trim$(a(i + 3, iii))
Next
End If
If Trim$(a(i, 1)) = "Location:" Then
For ii = i + 1 To UBound(a)
If Trim$(a(ii, 2)) = vbNullString Then Exit For
n = n + 1
b(n, 1) = sCustID
b(n, 2) = Trim$(a(ii, 2))
b(n, 4) = Trim$(a(ii, 4))
For iii = 5 To UBound(a, 2)
b(n, iii) = Trim$(a(ii, iii))
Next
Next
End If
Next
With Worksheets(shData)
a = .Range("a2", .Cells(3, LastColumn))
End With
Worksheets.Add After:=Sheets(shData)
With Range("a1")
.Resize(UBound(a), UBound(a, 2)) = a
.Offset(3).Resize(n, UBound(b, 2)) = b
End With
End Sub
Bookmarks