Bonjour à tous,
Une variante.....un peu tardive....
En supposant que ton tableau soit trié (colonne ordre), comme dans l'exemple joint....
Sub test()
Dim dico As Object, cell As Range, nom As Range, temp As Variant
Dim sh As Worksheet, j As Integer, NomFeuille As String
Set dico = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
With Sheets("Extract")
Set nom = .Range("J2:J" & .Range("J" & Rows.Count).End(xlUp).Row)
For Each cell In nom
dico(cell.Value) = ""
Next cell
temp = dico.keys
For Each sh In ThisWorkbook.Worksheets
Application.DisplayAlerts = False
If sh.Name <> "Exécute" And sh.Name <> "Opérations" And sh.Name <> "Extract" Then sh.Delete
Application.DisplayAlerts = True
Next sh
For j = 0 To UBound(temp)
NomFeuille = temp(j)
Sheets.Add after:=ThisWorkbook.Worksheets(Worksheets.Count)
With ActiveSheet
.Name = NomFeuille '...........................................
With Sheets("Extract")
.Range("A1").CurrentRegion.AutoFilter Field:=10, Criteria1:=temp(j)
.Range("A1").CurrentRegion.Copy [A1]
End With
End With
Next j
.Range("A1").CurrentRegion.AutoFilter Field:=10
.Activate
End With
End Sub
Cordialement,