Re, il y a un beugue dans mon fichier, utilise plutôt le code ci-dessous :
Sub test()
Dim sh As Worksheet
Dim Critère As String
Dim ColDébut, ColFin As Integer
Set sh = Sheets("Sheet1") 'Nom de la feuille où effectuer la procédure
Critère = sh.Range("D4") 'Adapter D4 avec la cellule où se trouve le critère de tri
ColDébut = sh.Range("E3").Column 'Adapter E3 avec la première colonne du tableau à trier
ColFin = sh.Range("Q3").Column 'Adapter Q3 avec la dernière colonne du tableau à trier
sh.ListObjects("Tableau1").Range.AutoFilter Field:=2, Criteria1:=Critère 'Remplacer Tableau1 si différent
For i = ColDébut To ColFin
If sh.Cells(4, i) <> Critère Then
sh.Columns(i).EntireColumn.Hidden = True
Else
sh.Columns(i).EntireColumn.Hidden = False
End If
Next i
End Sub