OVH Cloud OVH Cloud

temps d'execution long de row(i).delete

3 réponses
Avatar
c06
Bonjour

je desire faire une macro qui élimine certaines ligne avec l'execution en
vba de l'instruction rows(i).delete
Neanmoins il y a quand même quelque ligne à supprimer et cela ralenti
considérablement le temps d'execution de mon code
je me suis dit que c'es du à un truc du style recalcul screen updating etc
mais je ne sais pas trop...
quel est la cause et comment y remerdier (du style
appilication.screenupdating = false en début de code puis True en fin de
code)

meric de votre aide
a+

3 réponses

Avatar
c06
le code est
for i = 1 TO n
rows(i).delete
next i

"JLuc" a écrit dans le message de news:

*Bonjour c06*,
Quel est le code qui te sers a effacer les lignes ?

Bonjour

je desire faire une macro qui élimine certaines ligne avec l'execution en
vba de l'instruction rows(i).delete
Neanmoins il y a quand même quelque ligne à supprimer et cela ralenti
considérablement le temps d'execution de mon code
je me suis dit que c'es du à un truc du style recalcul screen updating
etc mais je ne sais pas trop...
quel est la cause et comment y remerdier (du style
appilication.screenupdating = false en début de code puis True en fin de
code)

meric de votre aide
a+


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Avatar
JLuc
*Bonjour c06*,
Quel est le code qui te sers a effacer les lignes ?

Bonjour

je desire faire une macro qui élimine certaines ligne avec l'execution en vba
de l'instruction rows(i).delete
Neanmoins il y a quand même quelque ligne à supprimer et cela ralenti
considérablement le temps d'execution de mon code
je me suis dit que c'es du à un truc du style recalcul screen updating etc
mais je ne sais pas trop...
quel est la cause et comment y remerdier (du style
appilication.screenupdating = false en début de code puis True en fin de
code)

meric de votre aide
a+


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Patrick BASTARD
Bonjour, *c06*

As-tu essayé avec
Application.EnableEvents = False en début, et Application.EnableEvents =
True à la fin ?
Pour mon cas (recopie d'une zone vers le bas), l'amélioration est ...
spectaculaire !

Merci, docm, qui m'a donné comme explication :
C'est long parce qu'il manque la commande
"...Application.EnableEvents = False
avant la commande PasteSpecial ce qui provoque une longue suite d'événements
Activate-Deactivate...


--
Bien amicordialement,
P. Bastard



Bonjour

je desire faire une macro qui élimine certaines ligne avec
l'execution en vba de l'instruction rows(i).delete
Neanmoins il y a quand même quelque ligne à supprimer et cela ralenti
considérablement le temps d'execution de mon code
je me suis dit que c'es du à un truc du style recalcul screen
updating etc mais je ne sais pas trop...
quel est la cause et comment y remerdier (du style
appilication.screenupdating = false en début de code puis True en fin
de code)

meric de votre aide
a+