Sub MAJ_feuilles()
Dim F As Worksheet, col%, P As Range, ncol%, d As Object, i&, j%
Application.ScreenUpdating = False
On Error Resume Next
Set F = Feuil1 'CodeName, à adapter
col = 3 'n° de colonne, à adapter
F.AutoFilterMode = False 's'il y a le filtre automatique
Set P = F.Rows("2:" & F.Cells(F.Rows.Count, col).End(xlUp).Row).Cells
ncol = P(1, F.Columns.Count).End(xlToLeft).Column 'dernière colonne
Set d = CreateObject("Scripting.Dictionary") 'pour éviter les doublons
For i = 2 To P.Rows.Count
If P(i, col) <> "" And Not d.exists(P(i, col).Value) Then
d(P(i, col).Value) = ""
'---création de la feuille si elle n'existe pas---
If IsError(Sheets(CStr(P(i, col)))) Then _
Sheets.Add(After:=Sheets(Sheets.Count)).Name = P(i, col)
With Sheets(CStr(P(i, col)))
'---mise en forme---
.Cells.Delete 'RAZ
P.Rows(0).Copy .[A1]
For j = 1 To ncol
.Columns(j).ColumnWidth = P(, j).ColumnWidth
Next
'---filtrage et remplissage de la feuille---
P.AutoFilter col, P(i, col) 'filtre automatique
P.SpecialCells(xlCellTypeVisible).Copy .[A2]
End With
End If
Next
F.AutoFilterMode = False 'suppression du filtre
F.Activate
End Sub