Bonjour,

je souhaite mettre en place un tri sur un tableau de données.

J'essaie d'utiliser le code suivant, trouvé dans l'article de Laurent_OTT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 dim Rng as Range 
 Set Rng = ThisWorkbook.Sheets("data").Range("DOTCDEE")    
   If Rng.ListObject.DataBodyRange Is Nothing = False Then   ' S'il y a des donn?es.
       With Rng.ListObject.Sort
           .SortFields.Clear                        ' Efface les anciens crit?res.
           .SortFields.Add Key:=Rng(0, 3)  ' NumColonne1 = 1re colonne de tri.
           .SortFields.Add Key:=Rng(0, 2)  ' NumColonne2 = 2e colonne de tri.
           .Header = xlYes                          ' Avec en-t?te.
           .Apply                                   ' Ex?cute le tri.
       End With
   End If
mais j'obtiens l'erreur suivante:
run-time error "91":
Object variable or With block variable not set.
l'erreur intervient sur la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
If Rng.ListObject.DataBodyRange Is Nothing = False Then
.

Sachant que le code proposé par Laurent_OTT est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim TD As Range ' Mémoire pour le tableau de données.
 
' Affecte un tableau de données :
Set TD = Range("Tableau1")
 
' Configuration du tri:
If TD.ListObject.DataBodyRange Is Nothing = False Then   ' S'il y a des données.
    With TD.ListObject.Sort
        .SortFields.Clear                        ' Efface les anciens critères.
        .SortFields.Add Key:=TD(0, NumColonne1)  ' NumColonne1 = 1re colonne de tri.
        .SortFields.Add Key:=TD(0, NumColonne2)  ' NumColonne2 = 2e colonne de tri.
        .Header = xlYes                          ' Avec en-tête.
        .Apply                                   ' Exécute le tri.
    End With
End If
j'ai du mal à voir qu'est-ce qui peut bloquer.
Quelqu'un est-il plus (r)éveillé que moi ?

Merci d'avance,