Esta macro fará isso sem o loop usando uma coluna vazia à direita ... para referência, a fórmula sendo colocada em D2 e copiada é:
= IF ($ C3="", $ C2, IF ($ A3="", $ C2 & "," & $ D3, $ C2))
Sub ReduceRows()
Dim LR As Long
LR = Range("C" & Rows.Count).End(xlUp).Row
With Range("D2:D" & LR)
.FormulaR1C1 = "=IF(R[1]C3="""", RC3, IF(R[1]C1="""", RC3&"",""&R[1]C4, RC3))"
.Value = .Value
.Copy Range("C2")
.ClearContents
End With
Columns("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub