|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : novembre 2007 Messages : 95 ![]() |
Bonjour,
On a un document word construit à l'aide de champ de fusion. J'ai cherché (vainement) pour trouver une manière simple d’exécuter une fonction VBA sur l'un de ces champs. En gros on a un numéro d'abonné dans le champ de fusion (NUMERO_ABONNE) et je cherche a le modifier suivant un l'algorithme. Auriez vous une solution pour moi ? Merci d'avance. Pierre |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
Une fois la fusion terminée, les champs de fusion n'existent plus. La solution est de lancer une macro avant. Pour cela, il faut gérer les évènements dans Word. Un peu de lecture sur ce point http://heureuxoli.developpez.com/off...age=page2#L2-C Voici le prototype de fonction pour deux évènements qui peuvent t'intéresser. Avant le début de la fusion Code :
Private Sub app_MailMergeBeforeMerge(ByVal Doc As Document, ByVal StartRecord As Long, ByVal EndRecord As Long, Cancel As Boolean) avant la fusion de chaque enregistrement Code :
Private Sub app_MailMergeBeforeRecordMerge(ByVal Doc As Document, Cancel As Boolean)
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
|
|
#3 | ||
|
Membre à l'essai
![]() Inscription : novembre 2007 Messages : 95 ![]() |
ok merci pour ta réponse.
je viens de tester mais je n'arrive pas a modifier la collection car elle est en lecture seul. Est ce que j'ai un autre moyen que de retenir la valeur dans une variable et la remplacer ensuite dans le document. voici mon code : Code :
Pierre |
||
|
|
00
|
|
|
#4 | ||
|
Membre à l'essai
![]() Inscription : novembre 2007 Messages : 95 ![]() |
voila le code que j'ai testé mais sans succès dans le module de classe :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : janvier 2007 Messages : 477 ![]() |
bonjour,
Avez vous trouvez une solution à ce problème? Je suis intéressé par savoir comment passer outre la lecture seule des propriétés. |
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : janvier 2007 Messages : 477 ![]() |
A force de tests j'ai trouvé une solution au problème de label55, je la diffuse pour ceux qui en aurai besoin :
L'édition d'une source de donnée ou d'un de ses champs n'est pas possible. En lieu et place de : Code :
Doc.MailMerge.DataSource.DataFields(i).value = "totot" \\ ne marche pas car propriete en lecture seul Code :
ActiveDocument.Variables("NOM_VARIABLE").Value = "totot" Une question supplémentaire : L'utilisation de la fonction Code :
Private Sub app_MailMergeBeforeMerge(ByVal Doc As Document, ByVal StartRecord As Long, ByVal EndRecord As Long, Cancel As Boolean) Le publipostage est détectable dans le document créé ainsi que dans les éventuelles macro de fusion. Mais le document maître semble être uniquement lu et donc ne voit pas d’évènement de son côté. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com