Salut Brett et André,
Effectivement, le trait d'union n'est pas pris en compte dans le tri.
On obtient ainsi :
Jean Paul
Jeanne
Jean-Paul
Donc, tu peux remplacer provisoirement le tiret par un espace, trier puis remettre le tiret, ce qui donnerait ceci, par exemple :
Sub TriSansTiret()
'Remplacement du tiret par un espace
Dim CL As Range
For Each CL In Range("A1:A4")
CL.Value = Replace(CL.Value, "-", " ")
Next
'Tri
Range("A1:A4").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
'Remplacement de l'espace par un tiret
For Each CL In Range("A1:A4")
CL.Value = Replace(CL.Value, " ", "-")
Next
End Sub
Si tu n'as pas d'espace au départ dans tes données à trier, ça marche, sinon, tu devras choisir un autre caractère de substitution.
A+
LN