Sub HacherMenu()
'Nb de lignes de données des fichier cibles
Const taille As Integer = 100
'Nom du Sous-répertoire cible
Const Cible$ = "\Extraits"
'Préfixe du nom des fichiers cibles
Const NomFich$ = "Extrait N°"
Dim WSh As Worksheet, LO As ListObject, Ligne As Range, N_Wsh As Worksheet
Dim Entête, Tb, NbBoucles As Long, i As Long
'La feuille contenant l'objet tableau (tableau structuré)
Set WSh = Feuil1
'Le tableau structuré source
Set LO = WSh.ListObjects(1)
'La première ligne de données
Set Ligne = WSh.Evaluate(LO.Name).Rows(1)
'l'Entête du tableau
Entête = LO.HeaderRowRange.Value
'Nombre de colonnes du tableau
NbCol = UBound(Entête, 2)
'Calcul du nombre de boucles (arrondi à l'entier supérieur)
Nb = WSh.Evaluate(LO.Name).Rows.Count / taille
NbBoucles = Int(Nb) + IIf(Nb > Int(Nb), 1, 0)
'Répertoire contenant Ce fichier
Chemin = ThisWorkbook.Path
'Nettoyage des anciens résultats
Application.ScreenUpdating = False
If Dir(Chemin & Cible, vbDirectory) <> "" Then
On Error Resume Next
Kill Chemin & Cible & "\*.*"
On Error GoTo 0
Else
MkDir Chemin & Cible
End If
For i = 0 To NbBoucles - 1
Tb = Ligne.Offset(i * 100).Resize(100).Value
Set N_Wsh = Workbooks.Add.Worksheets(1)
N_Wsh.Rows(1).Resize(1, NbCol).Value = Entête
N_Wsh.Rows(2).Resize(100, NbCol).Value = Tb
N_Wsh.Parent.SaveAs Filename:=Chemin & Cible & "\" & NomFich & Format(i + 1, "000000") & ".xlsx", FileFormat:=xlOpenXMLWorkbook
N_Wsh.Parent.Close Savechanges:=False
Next
Application.ScreenUpdating = True
End Sub