Sub Extraire()
Dim plg As Range, f As Worksheet
Dim critere As String
'déterminer la plage à extraire dans Base
With Sheets("Base")
Set plg = .Range("A1:D" & .Range("D" & Rows.Count).End(xlUp).Row)
End With
'Boucler sur toutes les feuilles du classeurs
For Each f In ThisWorkbook.Sheets
critere = ""
'Si le nom de la feuille commence par 'inscrits ' (espace compris)
If f.Name Like ("inscrits *") Then critere = Replace(f.Name, "inscrits ", "")
If f.Name Like "* CLUB" Then critere = Replace(f.Name, " CLUB", "")
If critere <> "" Then
'nettoyer toutes les cellules de la feuille
f.Cells.ClearContents
'préparation du critère de filtrage avancé
f.Range("A1") = "Catégorie"
'critère basé sur la fin du nom de la feuille
f.Range("A2") = "=""=" & critere & """"
'Extraction des données
plg.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=f.Range("A1:A2"), CopyToRange:=f.Range("A4:D4"), Unique:=False
'destruction des lignes de critère et séparation
f.Rows("1:3").EntireRow.Delete
End If
Next
End Sub