Bonsoir,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim p%, k%, prdts As Range
If Target.Address = "$A$1" Then
Application.ScreenUpdating = False
Me.Columns.Hidden = False
k = Me.Cells(1, Columns.Count).End(xlToLeft).Column
Set prdts = Me.Cells(1, 3).Resize(, k - 2)
p = WorksheetFunction.Match(Target, prdts, 0)
With prdts
.Columns.Hidden = True
.Columns(p).Hidden = False
End With
End If
End Sub
A placer dans le module de la feuille et tester...
Cordialement.