Sub Ventiler()
Dim t#, chemin$, Nsource&, i%, n&, nomfich$
t = Timer
chemin = ThisWorkbook.Path & "\" 'à adapter
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si les fichiers existent déjà
Workbooks.Add xlWBATWorksheet 'document auxiliaire vierge
With Feuil1.[A1].CurrentRegion 'CodeName de la feuille
Nsource = .Rows.Count - 1
For i = 2 To 28
.Cells(2, 7) = IIf(i = 2, "=ISNUMBER(-LEFT(B2))", "=LEFT(B2)=""" & Chr(62 + i) & """") 'critère
.AdvancedFilter xlFilterCopy, .Cells(1, 7).Resize(2), Cells(1) 'filtre avancé
n = n + Cells(1).CurrentRegion.Rows.Count - 1 'comptage des lignes
nomfich = IIf(i = 2, "0-9", Chr(62 + i))
ActiveSheet.Name = nomfich 'renomme la feuille
On Error Resume Next: Workbooks(nomfich & ".xlsx").Close: On Error GoTo 0 'si le fichier est ouvert
ActiveWorkbook.SaveAs chemin & nomfich, 51 'enregistrement au format .xlsx
Cells.Clear 'RAZ
Next
.Cells(2, 7) = ""
End With
ActiveWorkbook.Close 'ferme le document auxiliaire
MsgBox n & " lignes sur " & Nsource & " ont été ventilées en " & Format(Timer - t, "0.00 \sec")
End Sub