Marianne108
Messages postés13Date d'inscriptionsamedi 25 novembre 2006StatutMembreDernière intervention 5 juin 2010
-
3 avril 2008 à 21:26
Marianne108
Messages postés13Date d'inscriptionsamedi 25 novembre 2006StatutMembreDerniè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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
Marianne108
Messages postés13Date d'inscriptionsamedi 25 novembre 2006StatutMembreDerniè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