[COLOR=DarkSlateGray][B]Sub TUTU()
Dim i&, j&, tmp$, aux$, dat, oColl As New Collection
dat = Range("A1", Cells(Rows.Count, 1).End(xlUp)).Resize(, 2).Value [COLOR=DarkOrange]'plage de données + une colonne[/COLOR]
For i = 1 To UBound(dat, 1)
If dat(i, 1) Like "[[]*]" Then
tmp = dat(i, 1)
dat(i, 2) = tmp & "#" & Space(9) & dat(i, 1)
Else
dat(i, 2) = tmp & "#" & dat(i, 1)
End If
Next i
i = 1
Do Until dat(i, 1) Like "[[]*]" Or i = UBound(dat, 1)
If Not IsEmpty(dat(i, 1)) Then oColl.Add dat(i, 1)
i = i + 1
Loop
For i = i To UBound(dat, 1)
tmp = dat(i, 2)
For j = i + 1 To UBound(dat, 1)
If dat(j, 2) < tmp Then
aux = dat(i, 1): dat(i, 1) = dat(j, 1): dat(j, 1) = aux
dat(i, 2) = dat(j, 2): dat(j, 2) = tmp: tmp = dat(i, 2)
End If
Next j
If Not IsEmpty(dat(i, 1)) And dat(i, 1) <> "" Then
On Error Resume Next
oColl.Add dat(i, 1), dat(i, 2)
On Error GoTo 0
End If
Next i
If oColl.Count > 0 Then
ReDim dat(1 To oColl.Count, 1 To 1)
For i = 1 To oColl.Count
dat(i, 1) = oColl(i)
Next i
End If
With Range("C1") [COLOR=DarkOrange]'première cellule de destination[/COLOR]
Range(.Cells, Cells(Rows.Count, .Column).End(xlUp)).ClearContents
.Cells.Resize(UBound(dat, 1), 1).Value = dat
End With
End Sub[/B][/COLOR]