Oups !
Tu devras apporter une correction pour prendre en compte le décalage des mois :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ws1 As Worksheet, Ws2 As Worksheet
Dim Num_Col As Integer
Set Ws1 = Worksheets("Data1")
Set Ws2 = Worksheets("Data2")
Application.ScreenUpdating = False
If Not Intersect(Target, Range("B1")) Is Nothing Then
Num_Col = ((Month(Target) + 8) Mod 12) + 4
Ws1.Columns("D:AM").EntireColumn.Hidden = True
Ws1.Columns(Num_Col).Hidden = False
Ws1.Columns(Num_Col + 12).Hidden = False
Ws1.Columns(Num_Col + 24).Hidden = False
Ws2.Columns("D:AM").EntireColumn.Hidden = True
Ws2.Columns(Num_Col).Hidden = False
Ws2.Columns(Num_Col + 12).Hidden = False
Ws2.Columns(Num_Col + 24).Hidden = False
End If
Application.ScreenUpdating = True
End Sub
Cordialement.