Récuperer la liste des champ de fusion dans Word

Résolu
Marianne108 Messages postés 13 Date d'inscription samedi 25 novembre 2006 Statut Membre Dernière intervention 5 juin 2010 - 3 avril 2008 à 21:26
Marianne108 Messages postés 13 Date d'inscription samedi 25 novembre 2006 Statut Membre Dernière intervention 5 juin 2010 - 5 avril 2008 à 23:52
Bonjour
J'ai des modèles de courriers auxquelles est rattachés une source de fusion. Dans mes modèles se trouvent des champs de fusion pas toujours les mêmes pour un même modèle, aussi, pour chaque modèle il existe des conditions pour afficher un champ donné 
Exemple
Soit les modèles L1.dot, L2.dot, L3.dot auxquelles est rattaché une source de données fic.txt ( même source pour tous les modèles)

ma source à les champs suivants C1, C2, C3, C4, C5, C6...etc,etc

dans le modèles L1.dot, j'ai les champs C1, C3, C7, C12 est une condition :IF{mergefield C1}=3 "C7" "" }
dans le modèles L2.dot, j'ai les champs C2, C3, C17, C18 est une condition :IF{mergefield C17}=2 "C3" "" } et IF{mergefield C3}=4 "C17" "" }

dans le modèles L3.dot, j'ai les champs C1, C5, C7, C8, C12 est une condition :IF{mergefield C5}="A" "C12" "" }   

Ainsi je peux avoir plusieurs conditions dans un un modèles

Ma question est :
Est-il possible via VB6 de récupérer dans un fichier text et pour chaque modèles la liste des champs qui sont conditionnés
exepmle pour
L1.dot j'aurais un fichier L1.txt qui contiendra soit le champs C1 ou tout simplement le nom du champs C1
pour L2.dot --> L2.txt avec la liste des champs conditionnés C17 et C3
Pour L3.dot -->L3.txt avec le champs conditionné C5
 
je tiens à vous préciser que je ne maitrise pas bcp VB et si quelqu'un pouvais m'écrire le code se serait vraiment sympa

Merci d'avance pour  votre aide

Marianne

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 avril 2008 à 02:08
Salut
Je me suis amusé à créer un DOT avec champ + fichier excel avec données
Mais je n'arrive à voir où tu trouves ta condition, ton "If {MergeField ..." ?

En gros :
- Dans le menu "Projet", "Références", ajouter "Microsoft Word 11.0 Object Library" (ou autre version)
- Dans ton application, crée une lecture de ce document DOT :
   Dim xx As Word.Application
   Dim yy As Word.Document
   Set xx = New Word.Application
   Set yy = xx.Documents.Add("C:\Le chemin\Le fichier.dot")
- puis intéresse toi à l'énumération des "Fields" :
   Dim r As Integer
   For r = 1 To yy.Fields.Count
       Debug.Print yy.Fields(r).Code
   Next r
- Je pense que le texte que tu cherches est parmi ces données.
A toi de dépouiller la chaine de caractère récupérée pour détecter ton IF et l'inscrire dans un fichier texte

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés





<hr />

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
Marianne108 Messages postés 13 Date d'inscription samedi 25 novembre 2006 Statut Membre Dernière intervention 5 juin 2010
5 avril 2008 à 23:52
Bonjour

Merci pour ta réponse elle correspond bien à ce que je veux à moi maintenant de te donner une information

pour voir les if Mergefield voici ce qu'il faut faire

-Ouvre Word
-ajoute une source de données
-insére quelques champs  provenant de la source
- ajoute y une condition à partir du bouton "Insérer un mot clé" dans word 

puis tapes Alt+F9

tu verras la condition apparaitre

Merci pour ton aide
0
Rejoignez-nous