Page 1 sur 1

[Résolu][Calc] Rafraîchir écran : équivalent ScreenUpdating

MessagePublié: 28 Juin 2006 15:18
par Péna
bonjour tout le monde! :D

petite info:

depuis longtemps je cherche comment traduire :

Code : Tout sélectionner   AgrandirRéduire
Application.ScreenUpdating = False


Vu le nombre de questions sur ce sujet, j'ai pensé sympa de mettre un post la dessus car en me rendant sur le forum anglais de OOo, j'ai trouvé une traduction, certe discutable mais qui marche pour certains cas...

ms777 propose pour pallier au problème de rafraichissement d'écran (et donc à la vitesse d'exécution de la macro) d'utiliser les lignes suivantes:

Code : Tout sélectionner   AgrandirRéduire
sub setACC(OnOff as boolean)
   ThisComponent.enableAutomaticCalculation(OnOff)
end sub

sub ScreenUpdatingOn
   ThisComponent.UnlockControllers
   ThisComponent.removeActionLock
end sub

sub ScreenUpdatingOff
   ThisComponent.addActionLock
   ThisComponent.LockControllers
end sub



Malheureusement, jcdavid prévient que "LockControllers"n'est pas la traduction exacte de "screenupdating", et que par conséquent, cela peut poser problème. En fait, "LockController" ne fait pas qu'empécher le raffraichissement de l'écran, mais bloque aussi certaines fonctions comme "GotoEndOfUsedArea". En fait dans le lien qu'il fournit pour se justifier, il y a une très simple explication à ce phénomène (donnée par Cybb20) :

Si on utilise dans la macro des instructions telles que viewcursor (ou tout autre fonction qui dépend de la vue du document) LockController les empêchera de bien fonctionner. En fait, elle fonctionneront, mais pas sur la page prévue puisque celle-ci ne sera pas affichée. Elles fonctionneront sur la page qui était visible lorsque l'on a utilisé LockController. Il s'agit d'une méthode qui est très efficace du moment que l'on n'utilise rien qui dépende de la vue en cours.

moralité : LockController est un outils très efficace, peut-être trop...

voici le lien:

http://www.oooforum.org/forum/viewtopic.phtml?t=21072&highlight=screenupdating

vOOoila vOOoila
en espérant que cela serve à quelqu'un...
bye

PS1 : veuillez m'excuser si il y a des petites erreurs de traductions, je ne suis pas bilingue, héhé, et si par ailleurs, quelqu'un s'aperçoit que j'ai commis une grossière erreur de traduction, libre à lui de corriger ma traduction :wink: merci

PS2 : je n'ai traduis que les lignes importantes de ce lien, je n'ai pas cherché à traduire tous les liens.... mais si quelqu'un veut une explication sur l'un des liens présents dans ce lien, je me ferai une joie d'y répondre :) . Ou tout simplement, si je n'ai pas été clair, lol

MessagePublié: 28 Juin 2006 16:52
par Péna
je viens d'essayer cette solution, à savoir:

Code : Tout sélectionner   AgrandirRéduire
DocNewFile.addActionLock
DocNewFile.LockControllers


je n'ai eu aucun problème lors de l'exécution, et j'ai constaté une nette amélioration du temps d'exécution. La macro que j'ai lancé est très conséquente et donc permet d'avoir un bon ordre d'idée.

Je précise que la version utilisée de OOo est la 2.02.

J'ai lancé ma macro sur 2 ordi différents:
- Ordi 1 : Dell Inspiron XPS Gen2, Pentium M 2.13GHz, 1Go de Ram
- Ordi 2 : P4 2.4 GHz, 768Mo de Ram

les résultats sont hallucinants!

Résultats sous OOo:

Sur l'Ordi 1: avec la solution précédente: 16 sec (en moyenne)
sans la solution précédente: 43 sec (en moyenne)

Sur l'ordi 2: avec la solution précédente: 46 sec (en moyenne)
sans la solution précédente: 1min13sec (en moyenne) :shock:

Résultats sous Excel:

Sur l'Ordi 1: avec screenupdating: 3 sec (en moyenne)
sans screenupdating: 6 sec (en moyenne)

Sur l'ordi 2: avec la solution précédente: 3 sec (en moyenne)
sans la solution précédente: 9sec (en moyenne)

voila!
c'était juste à titre d'indication. Bon certes on s'en doutait un peu, m'enfin.... ça peut être intéressant.


vOOoila vOOoila

à plus

Re: [Calc] Rafraichissement écran : équivalent de ScreenUpda

MessagePublié: 25 Oct 2013 15:01
par Churay
Bonjour

Sur l'utilisation de lockControllers, il peut être instructif de lire Pys (Pierre-Yves Samyn) ici viewtopic.php?f=8&t=5065&hilit=LockController

Re: [Calc] Rafraichissement écran : équivalent de ScreenUpda

MessagePublié: 25 Oct 2013 15:05
par Wayra
Sujet déplace : que faisait-il dans les Suprêmes ?