Bonjour

Tu peux remplacer tes deux boucles par 

oRange = Feuille.getCellRangeByPosition(Colonne,3,Colonne+4,NbMax+5)
oRange.clearContents(com.sun.star.sheet.CellFlags.STRING)

Cordialement

> Date: Thu, 8 Nov 2012 11:45:31 +0100
> From: jean.luc.cou...@gmail.com
> To: users@fr.libreoffice.org
> Subject: [fr-users] [CALC] Problème de performance sur macro Basic
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Bonjour,
> 
> J’ai une macro Basic qui, à un moment, vide le contenu de chaînes de
> caractères dans un tableau.
> 
>   For i = 0 To NbMax+2
>     For j = 0 to 4
>       Cellule = Feuille.GetCellByPosition(Colonne+j,i+3)
>       Cellule.String = ""
>     Next
>   Next
> 
> "NbMax" fait typiquement entre 20 et 65
> "Colonne" est un décalage dans la feuille
> 
> Si je fais tourner le programme pas à pas (avec le recalcul désactivé),
> cela prend typiquement plus de 30 secondes pour ce bout de code.
> 
> En remarque complémentaire, la désactivation du recalcul (l’exécution de
> la seule instruction suivante) peut prendre jusqu’à 10 secondes.
> 
> ThisComponent.enableAutomaticCalculation(false)
> 
> Je suis sous Linux X86_64, noyau 3.6.6
> J’ai essayé avec libreoffice 3.5.4 et 3.6.3-rc2 (la version définitive
> n’est pas encore disponible sous Debian) avec des résultats similaires.
> 
> Deux questions donc :
> 1 - est-ce que ce comportement est normal ?
> 2 - est-ce qu’on sait "effacer" (en fait mettre la chaîne à vide) une
> zone d’un coup (sans la boucle) ?
> 
> Jean-Luc
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.19 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
> 
> iD8DBQFQm41LUdGGXzzGnNARArXPAJ42W0Ju68jsrjSTvG7k0W1rXQ7j4wCeNFOe
> W/l8BrnwEPI5nOuhDc9wJBI=
> =1M1c
> -----END PGP SIGNATURE-----
> 
> -- 
> Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
> désinscrire
> Les archives de la liste sont disponibles à 
> http://listarchives.libreoffice.org/fr/users/
> Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
> pourront pas être supprimés
                                          
-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à