Bonjour,
Et merci V_Elbie
Le code commenté, pour aider un peu à la compréhension
'Code écrit par Félix pour Hart
'Modifié par V_Elbie pour Dimitrius
Sub Extras()
Dim sh As Object, cel As Range
Application.ScreenUpdating = False
For Each sh In Sheets
If sh.Name <> "base" Then
Application.DisplayAlerts = False
sh.Delete 'on supprime toutes les feuilles, sauf la feuille de base
End If
Next sh
Range("A1:A" & [C65000].End(xlUp).Row).Name = "Extra" 'on détermine la plage des Extras
Range("A1:C" & [C65000].End(xlUp).Row).Name = "mabase" 'la plage de données
[H1] = [A1] 'on met le titre de la zone de critères pour le filtre élaboré
Range("extra").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"H1"), Unique:=True 'on extrait tous les "Extras", par filtre élaboré, extraction sans doublon
For Each cel In Range("H2:H" & [H65000].End(xlUp).Row) 'pour toutes les cellules "Extra"
Sheets("base").[H2] = cel 'on met le critère dans la cellule H2 pour le filtre élaboré
Sheets.Add after:=Sheets(Sheets.Count) 'on ajoute une feuille par "Extra"
With ActiveSheet
.Name = cel 'on nomme la feuille par la valeur de l'Extra
.[A1:C1].Value = Sheets("base").[A1:C1].Value 'on recopie les titres
Range("mabase").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets( _
"base").Range("H1:H2"), CopyToRange:=.Range("A1:C1"), Unique:=False 'on fait le filtre élaboré, de la plage
'nommée "mabase", avec les critères en H1H2
End With
Next cel 'valeur "Extra" suivante
Sheets("base").Select
Columns(8).ClearContents 'on efface les critères
End Sub