Sub Macro1()
Application.ScreenUpdating = False
Dim lig As Long, col As Long
With Sheets("Feuil1")
lig = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lig
col = .Cells(i, Columns.Count).End(xlToLeft).Column
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range(Cells(i, 1), Cells(i, col)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange Range(Cells(i, 1), Cells(i, col))
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
'*' d'après un code de Silkyroad
Set Origine = .Cells(i, 1)
Do
Set Suivant = Origine.Offset(0, 1)
If Suivant = Origine Then Origine.Delete xlToLeft
Set Origine = Suivant
Loop Until Origine = ""
Next i
End With
Application.ScreenUpdating = True
End Sub