Salut gpolin,
ton fichier serait-il verrouillé de toutes parts?
Mon code, dans n'importe quel autre fichier, fonctionne sans problème!
Je ne te laisse pas le fichier MAIS, ici, pour fonctionner, il faut :
- supprimer les cellules fusionnées de ton titre, histoire de garder libre la ligne 2 ;
- cette ligne doit (peut aussi, mais c'est moins beau!) être réglée ainsi : FONT.COLOR = Blanc ;
- j'utilise en effet la ligne 2 pour "cacher" les valeurs 1 ou 2 de chaque colonne correspondant au type de tri opéré sur cette colonne (tri ascendant ou descendant), valeur qui change à chaque clic.
A coller dans le module de la feuille 'Clsst Général'.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
If Not Intersect(Target, Range("C3:M3")) Is Nothing Then
Target.Offset(-1, 0) = IIf(Target.Offset(-1, 0) = 1, 2, 1)
iTri = IIf(Target.Offset(-1, 0) = 1, xlAscending, xlDescending)
sCol = Split(Columns(Target.Column).Address(ColumnAbsolute:=False), ":")(1)
Range("C4:M17").Sort key1:=Range(sCol & 4), order1:=iTri, Orientation:=xlTopToBottom
If Target.Column < 12 Then Range("C23:K36").Sort key1:=Range(sCol & 23), order1:=iTri, Orientation:=xlTopToBottom
End If
'
End Sub
A tester sur un fichier "normal"... Inch' Allah!
A+