Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

TEMPS D'EXECUTION D'UNE MACRO

2 réponses
Avatar
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

2 réponses

Avatar
Pierre Fauconnier
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")

Avatar
Nicoh
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")