oui c'est vrai, j'ai corrigé, mais c'est pareil:
Option Explicit
Dim ln, dercol
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then End
Application.ScreenUpdating = False
Cells.EntireColumn.Hidden = False
dercol = Cells(1, Columns.Count).End(xlToLeft).Column
If Target.Address = "$A$2" Then
For ln = 1 To dercol
If Cells(2, ln) <> Cells(2, 1) Then
Columns(ln & ":" & ln).EntireColumn.Hidden = True
End If
If Cells(2, 1) = "TOUT" Then
Columns(ln & ":" & ln).EntireColumn.Hidden = False
End If
Next ln
End If
End Sub