Public Sub fanic()
Dim tablo
Dim i As Long
Dim ws As Worksheet
Set ws = ActiveSheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
tablo = Range('a1:c' & Range('a65536').End(xlUp).Row)
ReDim Preserve tablo(1 To UBound(tablo), 1 To 5)
For i = 1 To UBound(tablo)
tablo(i, 4) = alphanumerique(tablo(i, 1), True)
tablo(i, 5) = alphanumerique(Trim(Replace(tablo(i, 1), tablo(i, 4), '')), False)
Next i
With Sheets.Add
.Range('a1').Resize(UBound(tablo), 5) = tablo
.Range('a1').CurrentRegion.Sort Key1:=Range('d1'), Order1:=xlAscending, Key2:=Range('e1') _
, Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
.Range('a1:a' & Range('a65536').End(xlUp).Row).Copy ws.Range('a1')
.Range('b1:b' & Range('b65536').End(xlUp).Row).Copy ws.Range('b1')
.Range('c1:c' & Range('c65536').End(xlUp).Row).Copy ws.Range('c1')
.Delete
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
'________________________________________________________________
Public Function alphanumerique(ByVal t As String, an As Boolean)
Dim i As Byte
For i = 1 To Len(t)
If IsNumeric(Mid(t, i, 1)) = an Then
alphanumerique = alphanumerique & Mid(t, i, 1)
Else
Exit Function
End If
Next i
End Function