Bon je poste tout de même puisque j'y ai passé du temps
Sub Test()
Dim Cel As Range, plage As Range
Dim Un As Collection
Dim Lig As Integer, Dcl As Integer
Application.ScreenUpdating = False
Set Un = New Collection
With Sheets("Feuil3")
Set plage = .Range("A4:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
plage.Sort Key1:=.Range("A4:B" & plage.Rows.Count + 3), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
On Error Resume Next
For Each Cel In .Range("A4:A" & plage.Rows.Count + 3)
If Cel <> "" Then
Un.Add Cel, CStr(Cel)
Select Case Err
Case Is = 0
Lig = Cel.Row: Dcl = .Cells(Lig, Columns.Count).End(xlToLeft).Column + 1
Case Is <> 0
.Cells(Lig, Dcl) = Cel.Offset(0, 1)
Dcl = Dcl + 1
.Rows(Cel.Row).ClearContents
End Select
Err.Clear
End If
Next Cel
plage.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Set Un = Nothing
Application.ScreenUpdating = True
End Sub
Faites un test sur ce code qui vous met les données dans une colonne séparée, enfin si cela vous intéresse encore
Cordialement