Microsoft Word :Temps mis pour ombrer une table
JeanTibar
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
j'aime bien dans une grande table ombrer une ligne sur deux, cela la rend plus lisible.
Le code est simple en Word basic :
For ii = 1 To nRows Step 2
sTbl.Rows(ii).Select: Selection.Shading.BackgroundPatternColor = wdColorGray25
Next
où, évidemment, sTbl est la table, et nRows son nombre de lignes.
Sauf que cela prend un temps horrible, dès que la table est grande : 103 sec si nRows=2000, 224 sec si NRows=3000, avec un PC rapide (I5-3570, Office 2007 sous Windows 8.1).
Et c'est encore plus si on ne masque pas la repagination, et la mise à jour de l'écran !
En comparaison, la même chose en Excel est très rapide, avec un code pourtant plus complexe :
For ii = 1 To nRows Step 2
Rows(ii).Select
With Selection.Interior
.Pattern = xlSolid : .PatternThemeColor = xlThemeColorDark1
.ThemeColor = xlThemeColorDark1: .TintAndShade = -0.14996795556505
.PatternTintAndShade = -0.14996795556505
End With
Next
il faut , avec nRows=3000, 0,2sec pour ombrer le tableau, 1000 fois moins qu'en Word !
A la limite, il est plus rapide de faire démarrer Excel par le macro, d'y transférer le tableau, de l'ombrer, de retransférer le résultat dans Word, et de fermer Excel ! Mais c'est évidemment une solution bizarre...
Quelqu'un peut-il m'aider à accélérer cet ombrage en restant dans Word ?
j'aime bien dans une grande table ombrer une ligne sur deux, cela la rend plus lisible.
Le code est simple en Word basic :
For ii = 1 To nRows Step 2
sTbl.Rows(ii).Select: Selection.Shading.BackgroundPatternColor = wdColorGray25
Next
où, évidemment, sTbl est la table, et nRows son nombre de lignes.
Sauf que cela prend un temps horrible, dès que la table est grande : 103 sec si nRows=2000, 224 sec si NRows=3000, avec un PC rapide (I5-3570, Office 2007 sous Windows 8.1).
Et c'est encore plus si on ne masque pas la repagination, et la mise à jour de l'écran !
En comparaison, la même chose en Excel est très rapide, avec un code pourtant plus complexe :
For ii = 1 To nRows Step 2
Rows(ii).Select
With Selection.Interior
.Pattern = xlSolid : .PatternThemeColor = xlThemeColorDark1
.ThemeColor = xlThemeColorDark1: .TintAndShade = -0.14996795556505
.PatternTintAndShade = -0.14996795556505
End With
Next
il faut , avec nRows=3000, 0,2sec pour ombrer le tableau, 1000 fois moins qu'en Word !
A la limite, il est plus rapide de faire démarrer Excel par le macro, d'y transférer le tableau, de l'ombrer, de retransférer le résultat dans Word, et de fermer Excel ! Mais c'est évidemment une solution bizarre...
Quelqu'un peut-il m'aider à accélérer cet ombrage en restant dans Word ?
A voir également:
- Microsoft Word :Temps mis pour ombrer une table
- Microsoft office - Guide
- Microsoft money - Télécharger - Comptabilité & Facturation
- Cette technique secrète permet d'avoir Windows et Microsoft Office gratuitement et à vie - Accueil - Bureautique
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
2 réponses
Bonjour,
A tout hasard, et si vous avez une version ancienne d'Excel, vous pourriez essayer ceci :
Sélectionner la plage concernée, aller sur format/mise en forme conditionnelle, saisir dans "la formule est : "
=mod(ligne();2)
puis aller dans "format", toujours dans mise en forme conditionnelle, et choisir la couleur désirée.
Astuce trouvée il y a fort longtemps sur Internet, gardée dans un coin de mon ordinateur et jamais utilisée...
Cordialement,
Alain
A tout hasard, et si vous avez une version ancienne d'Excel, vous pourriez essayer ceci :
Sélectionner la plage concernée, aller sur format/mise en forme conditionnelle, saisir dans "la formule est : "
=mod(ligne();2)
puis aller dans "format", toujours dans mise en forme conditionnelle, et choisir la couleur désirée.
Astuce trouvée il y a fort longtemps sur Internet, gardée dans un coin de mon ordinateur et jamais utilisée...
Cordialement,
Alain