Accelerer une opèration de tri multicritère

Fermé
benjamin - Modifié par benjamin le 6/02/2014 à 13:11
 benjamin - 12 févr. 2014 à 18:29
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 lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
6 févr. 2014 à 13:35
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
Non, je ne dispose pas de ces macros ni formules,
cordialement
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
7 févr. 2014 à 08:57
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
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 lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
8 févr. 2014 à 11:37
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
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 lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
Modifié par Zoul67 le 11/02/2014 à 22:19
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
Ok! merci!
0