comment alléger une macro

  • Initiateur de la discussion Initiateur de la discussion Caninge
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Caninge

Guest
Bonjour à tous

Il ya quelque temps j'ai demandé au forum une macro pour trier des résultats de bowling sur 4 personnes.

maintenant il y a 40 personnes et ça donne cela :

'Trier
Range("A1:A504").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("B1:B504").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("C1:C504").Select
Selection.Sort Key1:=Range("C1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("D1😀504").Select
Selection.Sort Key1:=Range("D1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("E1:E504").Select
Selection.Sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("F1:F504").Select
Selection.Sort Key1:=Range("F1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("G1:G504").Select
Selection.Sort Key1:=Range("G1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("H1:H504").Select
Selection.Sort Key1:=Range("H1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("I1:I504").Select
Selection.Sort Key1:=Range("I1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("J1:J504").Select
Selection.Sort Key1:=Range("J1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("K1:K504").Select
Selection.Sort Key1:=Range("K1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("L1:L504").Select
Selection.Sort Key1:=Range("L1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("M1:M504").Select
Selection.Sort Key1:=Range("M1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("N1:N504").Select
Selection.Sort Key1:=Range("N1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("O1:O504").Select
Selection.Sort Key1:=Range("O1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("P1😛504").Select
Selection.Sort Key1:=Range("P1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("Q1:Q504").Select
Selection.Sort Key1:=Range("Q1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("R1:R504").Select
Selection.Sort Key1:=Range("R1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("S1:S504").Select
Selection.Sort Key1:=Range("S1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("T1:T504").Select
Selection.Sort Key1:=Range("T1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("U1:U504").Select
Selection.Sort Key1:=Range("U1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("V1:V504").Select
Selection.Sort Key1:=Range("V1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("W1:W504").Select
Selection.Sort Key1:=Range("W1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("X1:X504").Select
Selection.Sort Key1:=Range("X1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("Y1:Y504").Select
Selection.Sort Key1:=Range("Y1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("Z1:Z504").Select
Selection.Sort Key1:=Range("Z1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom


Range("AA1:AA504").Select
Selection.Sort Key1:=Range("AA1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AB1:AB504").Select
Selection.Sort Key1:=Range("AB1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AC1:AC504").Select
Selection.Sort Key1:=Range("AC1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AD1:AD504").Select
Selection.Sort Key1:=Range("AD1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AE1:AE504").Select
Selection.Sort Key1:=Range("AE1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AF1:AF504").Select
Selection.Sort Key1:=Range("AF1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AG1:AG504").Select
Selection.Sort Key1:=Range("AG1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AH1:AH504").Select
Selection.Sort Key1:=Range("AH1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AI1:AI504").Select
Selection.Sort Key1:=Range("AI1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AJ1:AJ504").Select
Selection.Sort Key1:=Range("AJ1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AK1:AK504").Select
Selection.Sort Key1:=Range("AK1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AL1:AL504").Select
Selection.Sort Key1:=Range("AL1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AM1:AM504").Select
Selection.Sort Key1:=Range("AM1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("AN1:AN504").Select
Selection.Sort Key1:=Range("AN1"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("a1").Select

Application.CutCopyMode = False
Sheets("Calcul").Select
Range("a1").Select


Ne pourrait t'on pas "alléger" cette macro parce que j'ai mis tout ça sur son PC, il met quand même 1/2 heure pour faire les calculs!!!!

Je ne sais si ça vient de la macro ou bien de son ordinateur, mais je pense que c'est beaucoup trop long.

Merci de me répondre

A bientôt
 
Salut Caninge

Déjà tu pourras gagner du temps en figeant l'écran par cette ligne:

Application.Screenupdating= False

Autre truc: l'enregistreur de macro écrit range(B1:B504). select puis selection etc qui fait perdre beaucoup de temps.

donc au lieu de:
Range("E1:E504").Select
Selection.Sort Key1:=Range("E1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

tu écris:
Range("E1:E504").Sort Key1:=Range("E1")

A part ca, je ne vois rien d'autre...
Bonne soirée
Michel
 
Bonsoir Caninge et Michel_M

D'abord un reproche, il ne faut pas changer de fil tout le temps sinon on ne s'y retrouve plus :-(
C'est pour Caninge !!!

Et une macro qui j'espère résoudra ton problème de tri.

Sub TrierColonnes()
Dim i As Integer
Worksheets("recap").Select
Range("A1").Select
Worksheets("Calcul").Range("C1:AP1,C5:AP504").Copy
ActiveSheet.Paste
Application.CutCopyMode = False

For i = 1 To Application.CountA(Range(Range("A1"), Range("IV1").End(xlUp)))
Range(Cells(1, i), Cells(1000, i).End(xlUp)).Sort Key1:=Cells(1, i), Order1:=xlDescending
Next
Range("a1").Select
Sheets("Calcul").Select
Range("a1").Select
End Sub


Cordialement

Bernard
 
Bonsoir Caninge,

Voici trois instructions qui font le même travail que ta macro :

For Each Col In Range("A1:AN504").Columns
Col.Sort Key1:=Col.Cells(1), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Next Col

En espérant avoir répondu à ton problème.

Omicron.
 
Oui rebonjour à tous

oui j'ai fais des conneries,

j'ai fais des bétises en mettant plusieurs fils du fait que je recevais un message m'indiquant que ça ne passait pas.

Merci à Bernard et Omicron pour leur solutions et à bientôt

Caninge
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
1 K
Réponses
2
Affichages
771
Réponses
1
Affichages
821
Retour