Bonjour …
2 exemples :
1- Array (tableau VBA)
Option Explicit
Dim P
Private Sub Worksheet_Change(ByVal R As Range)
[A:U].EntireColumn.Hidden = 0
'tableau dont la liste des index commence à 0 d'où le R-1
P = Array([C:U], [F:U], [J:U], [O:U], [R:U])
If R.Address = [A2].Address Then
If R <> "" Then P(R - 1).EntireColumn.Hidden = 1
End If
End Sub
Avec Option base=1 sous Option Explicit, le – 1 est à supprimer (début à 1)
2- Tableau structuré (évidemment à adopter)
Private Sub Worksheet_Change(ByVal R As Range)
[A:U].EntireColumn.Hidden = 0
If R.Address = [A2].Address Then
If R <> "" Then Columns([TP[plage]].Rows(R).Text).EntireColumn.Hidden = 1
End If
End Sub
TP : tableau à 2 colonnes :liste des cas (1, 22, ...,5) couplée avec les colonnes à masquer (C:U, F:U, ...,R:U)