Dans Word, comment puis-je modifier les données de fusion et publipostage par programmation avec VBA?

StackOverflow https://stackoverflow.com/questions/1441071

Question

J'ai un document Word utilisé comme document source pour un publipostage. Je peux éditer le document, mais pas les données utilisées pour la fusion. Je dois transformer certaines des données dans la source de données (en particulier, je dois prendre des nombres (par exemple 342) et ajouter leur valeur sous forme de mots (par exemple, "trois cent quarante-deux (342)")). Je peux écrire une fonction VBA pour effectuer la transformation, mais je ne sais pas comment utiliser au mieux les données pour cette fonction.

Est-il possible d'associer une macro à des points spécifiques du document et de laisser la fusion piloter le processus de transformation? (Je pense à la façon dont vous pouvez utiliser des formules dans les champs Word; j'ai quelques éléments de la forme {IF {MERGEFIELD foo} > 75 {MERGEFIELD foo} {= {MERGEFIELD foo} * 20 }} déjà dans le document. Si je pouvais ajouter quelque chose pour pouvoir aller {FUNCTION WordNum {numéro MERGEFIELD}} , ce serait idéal.)

Alternativement, je pense que je peux utiliser VBA pour fouiller dans la source de données du publipostage (plus précisément document.MailMerge.DataSource ) et pour réécrire les champs. Si je choisis cette voie, où devrais-je exécuter la macro pour qu’elle obtienne les données après leur lecture à partir de la source de données, mais avant qu’elles aient été fusionnées avec le document?

Était-ce utile?

La solution 2

Il ne semble pas y avoir de moyen d'appeler des fonctions arbitraires à partir de macros Word incorporées. J'ai donc choisi la route VBA.

J'ai ajouté une macro AutoOpen au document source intitulée MailMerge.EditDataSource , puis j'ai parcouru le tableau pour y apporter des modifications.

Autres conseils

Pourriez-vous effectuer la transformation des données dans Microsoft Query? C'est-à-dire où vous avez actuellement:

Data Source -> Mail Merge Template

créer une requête Microsoft Query située entre votre source de données et Word:

Data Source -> Microsoft Query -> Mail Merge Template

Cela fait longtemps que je n’ai pas utilisé Fusion et publipostage dans Word, mais je ne me souviens pas d’avoir exercé un tel contrôle ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top