Sub TransposeData()
Dim lastRow As Long
Dim recRow As Long
Dim i As Long
Dim curSKU As String
Dim destWS As Worksheet
Dim sourceWS As Worksheet
Application.ScreenUpdating = False
Set sourceWS = ActiveSheet
Set destWS = ThisWorkbook.Worksheets.Add
curSKU = ""
recRow = 1
With sourceWS
destWS.Range("A1") = .Range("A1").Value
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
'Check if new SKU
If .Cells(i, 1).Value <> curSKU Then
curSKU = .Cells(i, 1).Value
recRow = recRow + 1
destWS.Cells(recRow, 1).Value = curSKU
End If
If .Cells(i, 2).Value <> "" Then
.Cells(i, 2).Resize(1, 2).Copy
destWS.Cells(recRow, .Columns.Count).End(xlToLeft).Offset(0, 1).PasteSpecial xlPasteValues
End If
Next i
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub