Deprecated: RegularLabs\Library\ArrayHelper::implode(): Implicitly marking parameter $last_glue as nullable is deprecated, the explicit nullable type must be used instead in /homepages/10/d550841420/htdocs/libraries/regularlabs/src/ArrayHelper.php on line 225
Comment, via VBA, ajouter une ligne à tous les tableaux d'un document et insérer la somme d'une colonne ?

Recherche

Cet exercice sera utile en particulier si vous avez utilisé le publipostage conditionnel qui va créer une série de documents résumant des données par destinataire.

On peut imaginer un exemple où les tableaux serait une synthèse de toutes les sommes dues. Vous souhaitez donc ajouter une ligne au tableau avec la somme d'une colonne.

La macro suivante ajoute une ligne à tous les tableaux du documents, ajoute le mot "TOTAL" dans la 4e cellule de la dernière ligne, et fait la somme dans la 5e cellule de la dernière ligne.

ATTENTION : Word n'est pas très à l'aise avec les nombres et surtout avec le format français. Lorsque vous insérez manuellement une formule, vous devez vous assurez que les nombres à additionner ont une espace insécable pour la séparation des milliers. Or, par VBA, il n'est pas possible d'insérer cette espace insécable dans un format nombre.

Donc, si vous avez besoin d'une mise en forme française pour les nombres, commencez par faire le calcul, puis affectez ensuite le format avec des espaces ordinaires.

Pour les formats nombre, voyez ici.

 

Sub calcul()
For x = 1 To ActiveDocument.Tables.Count
With ActiveDocument.Tables(x).Rows
.Add
.Last.Cells(4).Range.Text = "TOTAL"
.Last.Cells(5).Select
Selection.InsertFormula Formula:="=SUM(ABOVE)"
End With
Next
End Sub

 

 

Statistiques

France 72,3% France
Canada 5,3% Canada
Chine 3,7% Chine

Total:

154

Pays
018457934
Aujourd'hui: 119
Hier: 236
Cette semaine: 119
Semaine dernière: 2.729
Ce mois: 5.862