Récuperer la liste des champ de fusion dans Word [Résolu]

Marianne108 13 Messages postés samedi 25 novembre 2006Date d'inscription 5 juin 2010 Dernière intervention - 3 avril 2008 à 21:26 - Dernière réponse : Marianne108 13 Messages postés samedi 25 novembre 2006Date d'inscription 5 juin 2010 Dernière intervention
- 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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 4 avril 2008 à 02:08
3
Merci
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)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Jack
Marianne108 13 Messages postés samedi 25 novembre 2006Date d'inscription 5 juin 2010 Dernière intervention - 5 avril 2008 à 23:52
0
Merci
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
Commenter la réponse de Marianne108

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.