Private Sub Worksheet_Change(ByVal Target As Range)
Dim col(), x$
If Not Intersect(Target, Range("$A$2")) Is Nothing Then
Columns("C:IT").Hidden = True
col = _
Array([{"Janv","C:W"}], [{"Févr","X:AR"}], [{"Mars","AS:BM"}], [{"Avr","BN:CH"}], [{"Mai","CI:DC"}], [{"Juin","DD:DX"}], _
[{"Juill","DY:ES"}], [{"Août","ET:FN"}], [{"Sept","FO:GI"}], [{"Oct","GK:HD"}], [{"Nov","HE:HY"}], [{"Déc","HZ:IT"}], [{"Tout","C:IT"}])
With Application
.ScreenUpdating = False
x = .VLookup([A2], col, 2, 0): Columns(x).Hidden = False
End With
End If
End Sub