Je souhaite créer automatiquement une macro pour formater les cellules d'une table. (En Mot 2013)macro pour définir le formatage des cellules
Enregistrement action souhaitée comme un macro ce code:
With Selection.Cells(1)
.TopPadding = CentimetersToPoints(0)
.BottomPadding = CentimetersToPoints(0)
.LeftPadding = CentimetersToPoints(0.19)
.RightPadding = CentimetersToPoints(0.19)
.WordWrap = True
.FitText = False
End With
Son exécution applique à nouveau que les modifications à la première cellule (pas surprenant après avoir regardé le code).
J'ai essayé d'écrire la boucle appropriée autour:
For Each c in Selection.Cells
....
Next c
Mais sa performance est très lent, même si je passe de Screenupdating
.
Existe-t-il une meilleure façon de le faire avec une macro?
À quel point parlons-nous lentement? –
Dans un document moyen (150 - 200 pages) pour une table de 200 cellules, il faut cc 20-40 secondes, faire la même chose manuellement est fait immédiatement. –
Modifiez-vous seulement certaines cellules de la table? Si la plupart des cellules doivent avoir le même remplissage, est-il sensé de modifier les valeurs de remplissage de la cellule pour toute la table (via Selection.Tables (1) .TopPadding etc.) puis de recadrer les cellules individuelles qui en ont besoin, et appliquer wordwrap/fittext à toutes les cellules? Ici, ce dernier processus a semblé être relativement rapide, mais peut-être que mes données de test sont trop simples. Sinon, la seule amélioration de vitesse que je pouvais faire était significative, mais pas massive, réalisée en copiant toute la table à un nouveau document, en modifiant la disposition là, puis en la recopiant. –