Font.Color très lent

Jibse

XLDnaute Nouveau
Bonjour,

J'ai Excel 2007. Je constate que

ce code :

MonChamp.Font.Color = RGB(128, 128, 128)

est 10 fois plus lent que celui-ci :

ChampMemeCouleur.Copy
MonChamp.PasteSpecial xlPasteFormats

Bizarre. Même constat si au lieu d'utiliser RGB on utilise ColorIndex. Avez-vous une idée ?
Merci.
 

Jibse

XLDnaute Nouveau
Re : Font.Color très lent

Merci PascalXLD,

Je suis confus. Mon fichier pesant 10Mo avec plusieurs milliers de lignes de code, j'ai fait un petit fichier pour comparer les deux méthodes et c'est la première (font.format) qui est de loin la plus rapide (20 fois à peu près, en mesurant avec le MicroTimer (Ce lien n'existe plus) ce qui est a priori plausible). Donc, le problème vient de mon fichier (il y a beaucoup de forms sur les feuilles, peut-être est-ce la raison ?). J'exécute pourtant les codes dans les mêmes conditions (Application.ScreenUpdating False ainsi qu'EnableEvents, bien sûr). ça m'ennuie, car j'utilise beaucoup les couleurs, pas pour l'esthétique, mais pour la gestion du modèle.
 

Jibse

XLDnaute Nouveau
Re : Font.Color très lent

Bonjour,

J'ai résolu mon problème sans comprendre pourquoi. Le problème est d'ailleurs général : il se produit dans plusieurs macros de nature assez différente. Cependant, elles ont toutes ce point commun : le changement de police se fait dans des boucles, cellule par cellule.

Donc, si, au lieu de changer la couleur de la police dans les boucles, j'ajoute au fur et à mesure les cellules à colorier dans un tableau virtuel (set TableauDesCellulesAColorier = union (TableauDesCellulesAColorier, c)) et que je colorie ce tableau à la fin de la macro, le problème est résolu.

Si vous comprenez pourquoi...
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Font.Color très lent

Re

Oui c'est toujours plus rapide d'avoir des variables tableau

On avait fait le test il y a quelques années sur ce forum a trouvé la macro la plus rapide

les boucles c'est toujours plus long dans ce cas même avec screenupdating à false
 

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 325
Membres
103 813
dernier inscrit
Lolo280277