Accelerer une opèration de tri multicritère

benjamin -  
 benjamin -
Bonjour à tous le forum !!!
Grace à vous je commence à m'améliorer en programmation VBA. C'est pourquoi je me dirige vers vous pour solutionner mon problème.
Voici mon programme VBA pour réaliser un tri multicritère. Il marche mais en me prenant 2 minutes.
Comme vous pouvez le constater, je réalise un tri à multicritère et j'enregistre le fichier obtenu. Ainsi de suite, jusqu'à réaliser 4 tris.
Cela résulte-t-il de mon programme ? Peut modifier mon programme pour réduire le temps au minimum possible ? Si oui, comment le faire ? Je vous prie de m'aider.
Cordialement,


Public Sub tri()

Dim plg As Range
Application.ScreenUpdating = False

Set plg = Workbooks("clas.xlsm").Worksheets("feuil2").Range("A1:EE23353")

plg.AutoFilter

plg.Sort key1:=plg.Cells(1), order1:=xlAscending, key2:=plg.Cells(2), order2:=xlAscending, _
key3:=plg.Cells(3), order3:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom

ThisWorkbook.Save

Plg.Sort key1:=Plg.Cells(3), order1:=xlAscending, key2:=Plg.Cells(4), order2:=xlAscending, _
key3:=Plg.Cells(5), order3:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom

ThisWorkbook.Save

Plg.Sort key1:=Plg.Cells(6), order1:=xlAscending, key2:=Plg.Cells(7), order2:=xlAscending, _
key3:=Plg.Cells(8), order3:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom

ThisWorkbook.Save

Plg.Sort key1:=Plg.Cells(8), order1:=xlAscending, key2:=Plg.Cells(9), order2:=xlAscending, _
key3:=Plg.Cells(10), order3:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom

ThisWorkbook.Save
Application.ScreenUpdating = True

End Sub



Aidez moi s'il vous plait
A voir également:

5 réponses

Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

Tu as deux tris suivant la colonne 3. Idem pour la colonne 8.
La sauvegarde à chaque fois est aussi chronophage.
As-tu d'autres macros qui s'exécutent en fonction des changement de ton tableau ? Des formules qui se recalculent (passer en calcul sur orde le cas échéant en début de macro) ?

A+
0
benjamin
 
Non, je ne dispose pas de ces macros ni formules,
cordialement
0
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

"Tu as deux tris suivant la colonne 3. Idem pour la colonne 8.
La sauvegarde à chaque fois est aussi chronophage. "


As-tu remédié à ces problèmes ?

A+
0
benjamin
 
Bonsoir
Au fait, j('y ai assez réfléchi mais helas. je n'arrive pas a y remédier puisque ce sont mes critères de filtres.
Cordialement,
0
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

Il ne sert à rien de sauvegarder plusieurs fois ! Et inutile également de trier plusieurs fois suivant la colonne 3 et suivant la colonne 8.

A+
0
benjamin
 
Bonsoir!!
Je me demande, si je n'enregistre pas, est ce que je ne perdrai pas les résultats des filtres précédentes?
Au fait, pour moi en enregistrant, j'obtient une nouvelle base sur laquelle j'effectue de nouveau tri.
Mais si je n'enregistre pas, je me dis que tout se passera comme si je n'ai fais qu'n seul tri.
Oriente moi si je conçois mal.
Cordialment
0
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonsoir,

Oui, tu conçois mal.
Ne fais la sauvegarde qu'à la fin
Le principe de tri avec plus de 3 critères est traité par ailleurs sur le net. Jette un oeil là (en particulier la semi-récursivité) : https://codes-sources.commentcamarche.net/
et là (car tu as aussi 7 critères) : https://www.generation-nt.com/reponses/tri-plus-3-colonnes-entraide-3755031.html

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benjamin
 
Ok! merci!
0