comment alléger une macro

  • Initiateur de la discussion Caninge
  • Date de début
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:D504").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:p504").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
 
M

Michel_M

Guest
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
 
B

Bernard

Guest
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
 
O

omicron

Guest
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.
 
C

Caninge

Guest
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
 

Discussions similaires

Réponses
3
Affichages
651

Statistiques des forums

Discussions
312 681
Messages
2 090 882
Membres
104 686
dernier inscrit
obi009