Bonjour à tous,
je touche au bout de mon code VB pour exécuter ma fusion de document (MailMerge.Execute), mais j'ai un dernier problème : Ma source de données est un fichier xml qui contient la liste de mes champs Fusion, ainsi que leur valeur.
La syntaxe est la suivante :
Pour initialiser la variable HeaderRecord lors de l'appel de la méthode MailMerge.CreateDataSource, je "parse" mon fichier XML et je construis la liste de mes champs Fusion, en ayant au préalable récupéré le caractère séparateur défini dans les paramètres régionaux du Panneau de configuration. Dans mon cas, il s'agit du ";"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <field name="CHAMP_FUSION1"> <![CDATA[VALEUR_CHAMPFUSION1]]> </field>
Je me retrouve donc avec une chaîne de caractères qui ressemble à ça :
Par la suite, j'alimente mon fichier de données avec les valeurs contenues dans le fichier xml (cf la syntaxe ci-dessus). J'exécute la fusion via la ligne de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CHAMP_FUSION1;CHAMP_FUSION2; CHAMP_FUSION3;...
et tous les champs fusion du document sont parfaitement remplacés par leur valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MailMerge.Execute
Mon problème est : J'ai constaté que lorsque le champ fusion possède le caractère "-", lors de la création de la DataSource (MailMerge.CreateDataSource), le caractère "-" est supprimé !!!
Du coup, comme dans mon document Word original, le champ Fusion s'appelle bien CHAMP_FUSION-TEST, Word affiche la boite de dialogue indiquant que ce champ n'existe pas dans la source de données.
Est-ce une limite de syntaxe des champs Fusion ? Savez-vous comment traiter ce cas ?
Existe t-il une solution, ou faut-il que je revoie TOUS les documents modèle WORD pour remplacer le caractère - par un autre (ou par rien d'ailleurs) ?
Merci beaucoup de vos retours.
Franck.
Partager