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 :
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
If Rng.ListObject.DataBodyRange Is Nothing = False Then
.
Sachant que le code proposé par Laurent_OTT est :
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,
Partager