Hi Paul,

In VBA almost everything is possible.
Try the sub below. It's designed to work if, before running it, you activate the top left cell of the range, i.e. the first 1525 in column A. It is also required that the range in column A be contiguous, and that there be always a value in column B.
Of course, these limitations can be eliminated, but for that I need more info about the layout of the worksheet.

[vba]Sub TransP()
Dim RefCel As Range
Set RefCel = ActiveCell
Do While RefCel.Offset(1) <> ""
If RefCel.Offset(1) = RefCel Then
RefCel.End(xlToRight).Offset(, 1) = RefCel.Offset(1, 1)
RefCel.Offset(1).Resize(, 2).Delete xlUp
Else
Set RefCel = RefCel.Offset(1)
End If
Loop
End Sub
[/vba]

Jimmy