XL 2016 Macro tri tableau Dynamique

Bruce68

XLDnaute Impliqué
Bonsoir à tous
La macro ci dessous peut elle être raccourcie ? (Macro créer ave l' éditeur)
Je vous remercie de votre aide

VB:
 Sub TriTab4()
     Range("D2").Select  'Tri Tableau4
    ActiveWorkbook.Worksheets("Parametres").ListObjects("Tableau4").Sort.SortFields _
        .Clear
    ActiveWorkbook.Worksheets("Parametres").ListObjects("Tableau4").Sort.SortFields _
        .Add2 Key:=Range("Tableau4[Nom]"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Parametres").ListObjects("Tableau4").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 

Dranreb

XLDnaute Barbatruc
Bonsoir et bonne année.
On peut le faire avec un seul With ActiveWorkbook.Worksheets("Parametres").ListObjects("Tableau4").Sort
Si l'argument de tri ne change plus ensuite, on peut simplement faire ActiveWorkbook.Worksheets("Parametres").ListObjects("Tableau4").Sort.Apply
 

Bruce68

XLDnaute Impliqué
Re Dranreb

Je n'ai mis que cette ligne comme je trie toujours la même colonne
Il me met erreur d éxécution 9 l'indice n'appartient pas à la sélection
Sub Tri
ActiveWorkbook.Worksheets("Parametres").ListObjects("Tableau4").Sort.Apply
End sub

Merci pour l'aide
 

Dranreb

XLDnaute Barbatruc
Il ne doit pas y avoir de feuille "Paramètres" dans le classeur actif ou pas de Tableau4 dans cette feuille je pense.
Si le code est dans le classeur, essayez en remplaçant ActiveWorkbook.Worksheets("Parametres") par le nom de l'objet Worksheet qui représente cette feuille dans la rubrique Microsoft Excel Objets du projet VBA,
 

Jacky67

XLDnaute Barbatruc
Bonjour Dranreb et le forum

Dans le fichier exemple ci joint il y a bien "Tableau4" et la feuille "Parametres" mais la macro ne fait pas de tri.

Merci pour l'aide
Bonjour à tous et bonne année
Essaye
VB:
Sub Tri()
[Tableau4].Sort Key1:=[Tableau4[NOM]], Order1:=xlAscending, Header:=xlYes
End Sub

*??Pourquoi une macro, ceci est directement faisable par le filtre de [nom]
 

Pièces jointes

  • Test_Tri.xlsm
    14.8 KB · Affichages: 9
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour et bonne année.
Il n'y a pas de tri personnalisé défini sur ce tableau. Par Conséquent la méthode Appli de sa propriété Sort reste sans effet.
Il faut préalablement faire un clic droit sur une cellule du tableau, Trier, Tri personnalisé et ajouter les niveaux.
 

Discussions similaires