Option Explicit
Sub Mois()
Dim Sh As Worksheet
Dim Cel As Range
Dim DerL&
Dim Lig&
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
For Each Sh In Sheets
If Sh.Name <> "Base" And Sh.Name <> "Modèle" Then
Sh.Delete
End If
Next Sh
Sheets("Modèle").Visible = True
With Sheets("Base")
Range("A1").Select
DerL = .[A65000].End(xlUp).Row
For Lig = 2 To DerL
Cells(Lig, 3).Formula = "=TEXT(RC[-1],""mmmm"")"
Cells(Lig, 3) = Cells(Lig, 3).Value
Next Lig
.Range("A1:F" & DerL).Name = "Base"
.[Z1] = .[C1]
.Range("D1:A" & DerL).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("Z1"), Unique:=True
For Each Cel In .Range("Z2:Z" & .[Z65000].End(xlUp).Row)
If Cel.Value <> "" Then
.[Z2] = Cel.Value
Sheets("Modèle").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = .[Z2]
.Range("Base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range("Z1:Z2"), _
CopyToRange:=Range("A1:F1"), Unique:=False
ActiveSheet.Cells.EntireColumn.AutoFit
Columns(3).EntireColumn.Hidden = True
End If
Cells(1, 2).Select
Next Cel
.Columns(26).Clear
.Select
End With
Sheets("Modèle").Visible = False
End Sub