Bonsoir,
Si c'est avec excel et non access, ceci peut probablement convenir.
On suppose que les onglets n'existent pas au départ.
Sub recfil()
'ADAPTE d'une réponse sur le forum
'On suppose que le filtre s'applique sur la colonne H
'et que le premier worksheet s'appelle "origin2004"
Dim Cell As Range
Dim Unique As New Collection
Dim Valeur As Range
Dim i As Integer
Application.ScreenUpdating = False
Set w = Worksheets("origin2004" )
w.Select
w.AutoFilterMode = False
'Récupère la derniere ligne non vide dans la colonne A
i = Range("H65536" ).End(xlUp).Row
On Error Resume Next
'boucle sur les cellules de la colonne A
For Each Cell In Range("H2:H" & i)
If Not Cell.EntireRow.Hidden Then Unique.Add Cell, CStr(Cell)
'Stocke les données dans une collection
'(La collection n'accepte que des données uniques et permet donc
' de filtrer facilement les doublons).
'Unique.Add Cell, CStr(Cell)
Next Cell
On Error GoTo 0
'Boucle sur le contenu de la collection pour créer les onglets
For Each Valeur In Unique
w.AutoFilterMode = False
w.Range("H:H" ).AutoFilter field:=1, Criteria1:=Valeur
Sheets.Add
ActiveSheet.Name = Valeur
nomsh = Valeur
Sheets("origin2004" ).Rows.Copy Sheets(nomsh).Range("a1" )
Next Valeur
Application.ScreenUpdating = True
End Sub
Cordialement