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