See if the below is of interest - designed to run against your "Initial State of Information" sheet - ie alters original data (run on a test first!)
Public Sub Example()
Dim xlCalc As XlCalculation, lngRow As Long, vData
On Error GoTo ExitPoint
With Application
xlCalc = .Calculation
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
For lngRow = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
With Cells(lngRow, "A")
vData = Split(.Value, ",")
If UBound(vData) Then
.Offset(1).EntireRow.Resize(UBound(vData)).Insert
.Resize(UBound(vData) + 1).Value = Application.Transpose(vData)
.Offset(, 1).Resize(UBound(vData) + 1, 2).Value = .Offset(, 1).Resize(, 2).Value
End If
End With
Next lngRow
ExitPoint:
With Application
.ScreenUpdating = True
.Calculation = xlCalc
.EnableEvents = True
End With
End Sub
Bookmarks