Public Sub Masquer_Jour_En_Trop(Plage As String)
Dim Cell As Range
Dim Target As Range
Dim Num_Mois As Integer
Set Target = Range(Plage) ' Plage de cellules où sont les dates
' On récupère le numéro de mois dans la cellule associée à la Shape Appelante ( mois traité )
Num_Mois = Range(ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.LinkedCell).Value
' On rend visible toutes les dates qui ont pu être masquées précédemment
Target.Columns.Hidden = False
' On inspecte chaque cellule de la plage cible
For Each Cell In Target
' si le numéro de mois de la cellule cible est différent du numéro de mois traité,
' la colonne de cette cellule doit être masquée
Columns(Cell.Column).Hidden = Month(Cell) <> Num_Mois
Next
' On libère la mémoire
Set Target = Nothing
End Sub