Salut,
J'aimerai savoir si il était possible de nettoyer une macro devenue trop conséquente et donc trés lente!
Pour le moment, il m'est impossible de refaire un build vierge de mon fichier (car il contient beaucoup données perso) mais avez vous quelques conseils pour nettoyer un bout du code ci dessous (vu que c'est un schéma de code qui se répète, j'aurais juste a continuer le code pareil en modifiant au fur et a mesure les valeurs suivantes):
Donc comme vous le voyez, c'est un peu le "bordel"! Y'a du .select partout (on m'a dit que c'était pas top pour la vitesse d'execution) et encore il s'agit que d'un bout de code car dans mon fichier il se répète une bonne soixante de fois à la suite!
En gros il me faut presque 5 a 8 minutes d'attente quand je lance la macro telle que ci-dessus!
Pour expliquer la macro:
Le code represente pratiquement que des tableaux à réordonner par ligne selon les valeurs des cellules. Il y a plusieurs colonnes qui sont réordonner dans un certain ordre de priorité (Order1, Order2, etc..)
Si c'est trop compliqué, c'est pas grave j'essayerai de passer une autre fois quand mon fichier sera moins conséquent.
Merci encore
J'aimerai savoir si il était possible de nettoyer une macro devenue trop conséquente et donc trés lente!
Pour le moment, il m'est impossible de refaire un build vierge de mon fichier (car il contient beaucoup données perso) mais avez vous quelques conseils pour nettoyer un bout du code ci dessous (vu que c'est un schéma de code qui se répète, j'aurais juste a continuer le code pareil en modifiant au fur et a mesure les valeurs suivantes):
Code:
Application.ScreenUpdating = False
Sheets("le Classement").Select
Range("E6").Select
Selection.Sort Key1:=Range("F6"), Order1:=xlDescending, Key2:=Range("M6") _
, order2:=xlDescending, Key3:=Range("K6"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B3:N3").Select
Sheets("les Buts").Select
Range("C845").Select
Selection.Sort Key1:=Range("D845"), Order1:=xlDescending, Key2:=Range( _
"F845"), order2:=xlDescending, Key3:=Range("E845"), Order3:=xlDescending _
, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("H845").Select
Selection.Sort Key1:=Range("I845"), Order1:=xlAscending, Key2:=Range( _
"J845"), order2:=xlAscending, Key3:=Range("K845"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("M845").Select
Selection.Sort Key1:=Range("N845"), Order1:=xlDescending, Key2:=Range( _
"P845"), order2:=xlDescending, Key3:=Range("O845"), Order3:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Sheets("Classement1").Visible = True
Sheets("Classement1").Select
Range("d6").Select
Selection.Sort Key1:=Range("E6"), Order1:=xlDescending, Key2:=Range("L6") _
, order2:=xlDescending, Key3:=Range("J6"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B3:M3").Select
Sheets("les Buts").Select
Range("D890").Select
Selection.Sort Key1:=Range("D890"), Order1:=xlDescending, Key2:=Range( _
"F890"), order2:=xlDescending, Key3:=Range("E890"), Order3:=xlDescending _
, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("H890").Select
Selection.Sort Key1:=Range("I890"), Order1:=xlAscending, Key2:=Range( _
"J890"), order2:=xlAscending, Key3:=Range("K890"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("M890").Select
Selection.Sort Key1:=Range("N890"), Order1:=xlDescending, Key2:=Range( _
"P890"), order2:=xlDescending, Key3:=Range("O890"), Order3:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("B2").Select
Sheets("Classement1").Visible = False
Application.ScreenUpdating = True
Donc comme vous le voyez, c'est un peu le "bordel"! Y'a du .select partout (on m'a dit que c'était pas top pour la vitesse d'execution) et encore il s'agit que d'un bout de code car dans mon fichier il se répète une bonne soixante de fois à la suite!
En gros il me faut presque 5 a 8 minutes d'attente quand je lance la macro telle que ci-dessus!
Pour expliquer la macro:
Le code represente pratiquement que des tableaux à réordonner par ligne selon les valeurs des cellules. Il y a plusieurs colonnes qui sont réordonner dans un certain ordre de priorité (Order1, Order2, etc..)
Si c'est trop compliqué, c'est pas grave j'essayerai de passer une autre fois quand mon fichier sera moins conséquent.
Merci encore
Dernière édition: