TEMPS D'EXECUTION D'UNE MACRO

Le
Nicoh
Bonjour à tous,

J'utilise la macro ci-dessous (développée par Pierre Fauconnier) :
Sub MaMacro()
AlternerCellulesPlages Range("AJ93:AJ130")
AlternerCellulesPlages Range("AJ133:AJ173")
AlternerCellulesPlages Range("AN94:AN130")

End Sub

Sub AlternerCellulesPlages(Plage As Range)
Dim i As Long
For i = 1 To Plage.Cells.Count Step 2
Plage.Cells(i).font.colorindex = 2
Next i
End Sub

Elle met 2 secondes à s'éxécuter.

J'y ajoute à la fin (après next i) :

Range("A565:A694").Font.ColorIndex = 2
Range("BG589").Font.ColorIndex = 2

Elle met aussi 2 à 3 secondes à s'éxécuter.

Par contre quand j'ajoute (en dernier avant End Sub) :
[BK578] = "A"
la macro s'éxécute en plus de trente secondes.

Est-ce normal pour cette simple instruction ?
Si non, comment procéder ?

D'avance merci pour vos réponses,

Nicoh
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Fauconnier
Le #4759951
Bonjour

1. il y peut-être un calcul automatique qui ralentit l'histoire. Vu les
plages utilsées, tes tableaux sont conséquents, donc le recalcul lors
d'une modification de cellule peut être lent.

2. Pourquoi ajouter ces lignes dans la macro AlternerCellulesPlages,
puisque les données sont en dur dans les lignes ajoutées. Dès lors, tu
réalises autant de fois les lignes ajoutées que tu lances la macro
Alterner... et donc autant de fois un recalcul, à mon sens inutile.

Place plutôt les lignes ajoutées après tous les appels à Alterner dans
la macro principale

Ok?



Bonjour à tous,

J'utilise la macro ci-dessous (développée par Pierre Fauconnier) :
Sub MaMacro()
AlternerCellulesPlages Range("AJ93:AJ130")
AlternerCellulesPlages Range("AJ133:AJ173")
AlternerCellulesPlages Range("AN94:AN130")
...
End Sub

Sub AlternerCellulesPlages(Plage As Range)
Dim i As Long
For i = 1 To Plage.Cells.Count Step 2
Plage.Cells(i).font.colorindex = 2
Next i
End Sub

Elle met 2 secondes à s'éxécuter.

J'y ajoute à la fin (après next i) :

Range("A565:A694").Font.ColorIndex = 2
Range("BG589").Font.ColorIndex = 2

Elle met aussi 2 à 3 secondes à s'éxécuter.

Par contre quand j'ajoute (en dernier avant End Sub) :
[BK578] = "A"
la macro s'éxécute en plus de trente secondes.

Est-ce normal pour cette simple instruction ?
Si non, comment procéder ?

D'avance merci pour vos réponses,

Nicoh


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")

Nicoh
Le #4759871
Bonjour Pierre,

Merci pour ta réponse. C'est exactement ce qu'il me fallait. C'est
maintenant rapide.

Nicoh


Bonjour

1. il y peut-être un calcul automatique qui ralentit l'histoire. Vu les
plages utilsées, tes tableaux sont conséquents, donc le recalcul lors
d'une modification de cellule peut être lent.

2. Pourquoi ajouter ces lignes dans la macro AlternerCellulesPlages,
puisque les données sont en dur dans les lignes ajoutées. Dès lors, tu
réalises autant de fois les lignes ajoutées que tu lances la macro
Alterner... et donc autant de fois un recalcul, à mon sens inutile.

Place plutôt les lignes ajoutées après tous les appels à Alterner dans
la macro principale

Ok?



Bonjour à tous,

J'utilise la macro ci-dessous (développée par Pierre Fauconnier) :
Sub MaMacro()
AlternerCellulesPlages Range("AJ93:AJ130")
AlternerCellulesPlages Range("AJ133:AJ173")
AlternerCellulesPlages Range("AN94:AN130")
...
End Sub

Sub AlternerCellulesPlages(Plage As Range)
Dim i As Long
For i = 1 To Plage.Cells.Count Step 2
Plage.Cells(i).font.colorindex = 2
Next i
End Sub

Elle met 2 secondes à s'éxécuter.

J'y ajoute à la fin (après next i) :

Range("A565:A694").Font.ColorIndex = 2
Range("BG589").Font.ColorIndex = 2

Elle met aussi 2 à 3 secondes à s'éxécuter.

Par contre quand j'ajoute (en dernier avant End Sub) :
[BK578] = "A"
la macro s'éxécute en plus de trente secondes.

Est-ce normal pour cette simple instruction ?
Si non, comment procéder ?

D'avance merci pour vos réponses,

Nicoh


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")






Publicité
Poster une réponse
Anonyme