et un nouveau problème avec le INCLUDEPICTURE !

Le
blancmunier1
Bonjour,
Je fais encore appel vous !
Je vous explique mon nouveau problme (il est li en fait mon
problme de vendredi, mais c'est mieux de le traiter sparment).
J'essaie un moment de fusionner un document de publipostage via VBA.
Voici un extrait de mon code VBA :
WordBasic.MailMergeOpenDataSource Name:=DataFiles$, ReadOnly:=0
WordBasic.MailMerge MergeRecords:=0, Destination:=0, MailMerge:=1

Ce qui fonctionne trs bien sauf pour un champs qui ne se fusionne pas
correctement.
ce champs est le suivant :
{ INCLUDEPICTURE "../Img/{ MERGEFIELD Matricule }.bmp" d }
Il y a donc un champs imbriqu dans un autre, car le nom de mon image,
correspond au champs "matricule" .bmp.
Hors aprs fusion, j'obtiens sur mes diffrents enregistrements :
INCLUDEPICTURE "../Img/001400.bmp" d
INCLUDEPICTURE "../Img/001401.bmp" d
INCLUDEPICTURE "../Img/001402.bmp" d
Mais il n'y a pas d'images qui s'affichent !
J'ai alors essay de prcder le code VBA ci-dessus avec :
Selection.WholeStory
Selection.Fields.Update
ActiveWindow.View.ShowFieldCodes = False
Pour le forcer basculer le champs en image.
Et l, j'ai sur chaque enregistrement la photo correspondant au
premier enregistrement !
Et je ne comprend pas pourquoi, je bloque totalement
Si quelqu'un comprend ce qu'il se passe, je serais heureux de
comprendre mon tour !
Merci en tout cas la communaut !
Bonne semaine
Yvan
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Circé
Le #1406510
Bonjour,

Est-ce que tu as mis tes champs dans une zone de texte ou bien dans une
cellule de tableau comme je te l'avais conseillé ?...

Si tes champs sont dans des zones de texte, elles ne seront pas prises
en compte avec
"Selection.WholeStory
Selection.Fields.Update"

Circé

Bonjour,
Je fais encore appel à vous !
Je vous explique mon nouveau problème (il est lié en fait à mon
problème de vendredi, mais c'est mieux de le traiter séparément).
J'essaie à un moment de fusionner un document de publipostage via VBA.
Voici un extrait de mon code VBA :
WordBasic.MailMergeOpenDataSource Name:ÚtaFiles$, ReadOnly:=0
WordBasic.MailMerge MergeRecords:=0, Destination:=0, MailMerge:=1

Ce qui fonctionne très bien sauf pour un champs qui ne se fusionne pas
correctement.
ce champs est le suivant :
{ INCLUDEPICTURE "../Img/{ MERGEFIELD Matricule }.bmp" d }
Il y a donc un champs imbriqué dans un autre, car le nom de mon image,
correspond au champs "matricule" .bmp.
Hors après fusion, j'obtiens sur mes différents enregistrements :
INCLUDEPICTURE "../Img/001400.bmp" d
INCLUDEPICTURE "../Img/001401.bmp" d
INCLUDEPICTURE "../Img/001402.bmp" d
Mais il n'y a pas d'images qui s'affichent !
J'ai alors essayé de précéder le code VBA ci-dessus avec :
Selection.WholeStory
Selection.Fields.Update
ActiveWindow.View.ShowFieldCodes = False
Pour le forcer à basculer le champs en image.
Et là, j'ai sur chaque enregistrement la photo correspondant au
premier enregistrement !
Et je ne comprend pas pourquoi, je bloque totalement...
Si quelqu'un comprend ce qu'il se passe, je serais heureux de
comprendre à mon tour !
Merci en tout cas à la communauté !
Bonne semaine
Yvan


blancmunier1
Le #1406505
Salut,
Non, ma photo est bien dans le corps du texte, en vrac, et lorsque je
débugue pas à pas, le selection.wholestory et le fields.update
marchent sans probleme dans le document principal.
Mon problème c'est qu'après fusion (j'ai 2 enregistrements dans un
fichier texte), la photo du second enregistrement correspond à la
photo destinée au premier enregistrement...
là, je nage dans la semoule...
Merci de ton aide
Yvan
blancmunier1
Le #1406504
Salut,
Non, ma photo est bien dans le corps du texte, en vrac, et lorsque je
débugue pas à pas, le selection.wholestory et le fields.update
marchent sans probleme dans le document principal.
Mon problème c'est qu'après fusion (j'ai 2 enregistrements dans un
fichier texte), la photo du second enregistrement correspond à la
photo destinée au premier enregistrement...
là, je nage dans la semoule...
Merci de ton aide
Yvan
Anacoluthe
Le #1406484
Bonjour !

'' nous a écrit ...
Non, ma photo est bien dans le corps du texte, en vrac, et lorsque je
débugue pas à pas, le selection.wholestory et le fields.update
marchent sans probleme dans le document principal.
Mon problème c'est qu'après fusion (j'ai 2 enregistrements dans un
fichier texte), la photo du second enregistrement correspond à la
photo destinée au premier enregistrement...
là, je nage dans la semoule...


Dans votre document de /fusion/ - pas dans le document principal -
faites Alt+F9 : vous devez voir plusieurs champs INCLUDEPICTURE
avec des noms de fichiers images différents. Si ce n'est pas le cas
revenez à votre document principal qui est mal fichu. Si les
INCLUDEPICTURE sont tous OK dans le document de fusion
refaites Alt+F9 puis Ctrl+A puis F9

Anacoluthe
« Dans l’impossible fusion la confusion »
- Jacques LACAN

blancmunier
Le #1403278
Bonjour,
Je répond un peu tard. J'espère que vous avez toujours en tête ma
problématique.
En suivant vos conseils, j'ai aisément compris ce qui n'allait pas
J'utilisais en fait un chemin relatif pour le INCLUDEPICTURE. Or le
document généré après la fusion n'est pas enregistré
automatiquement dans le même répertoire que le document maître.
D'où le problème...
La solution n'est pourtant pas si simple, car lorsque je veux utiliser
un chemin absolu, j'ai donc la formule suivante :
{INCLUDEPICTURE
"\\Frdefpeoplerh\App_People\PS_Sirh_User\Img\{MERGEFIELD
"Matricule"}.bmp" * MERGEFORMAT d}
J'ai deux problèmes de taille :
- Dès que j'enregistre le document maître, la formule se transforme
à nouveau en chemin relatif automatiquement ! Je n'arrive donc pas à
enregistrer les modifications apportées !
- Si je n'enregistre pas le document maître, et que je fusionne, le
document fusionné doit alors être mis à jour manuellement pour être
OK (Ctrl+A puis Ctrl+F9 puis F9). Or j'aurais besoin d'automatiser
ceci, car de nombreux utilisateurs vont utiliser ce publipostage via
une application en interne et je ne peux pas demander aux utilisateurs
de faire ces combinaisons de touches eux-mêmes Pour info, j'automatise
la fusion avec du VBA et peux agir aisément sur le document maître,
mais comment ensuite agir sur le document généré, ceci me parait
ardu. Il faudrait que je puisse sélectionner la dernière fenêtre
Word ouverte genre
window(lastopened).activate

Je vous remercie pour votre aide

Yvan




Bonjour !

'' nous a écrit ...
Non, ma photo est bien dans le corps du texte, en vrac, et lorsque je
débugue pas à pas, le selection.wholestory et le fields.update
marchent sans probleme dans le document principal.
Mon problème c'est qu'après fusion (j'ai 2 enregistrements dans un
fichier texte), la photo du second enregistrement correspond à la
photo destinée au premier enregistrement...
là, je nage dans la semoule...


Dans votre document de /fusion/ - pas dans le document principal -
faites Alt+F9 : vous devez voir plusieurs champs INCLUDEPICTURE
avec des noms de fichiers images différents. Si ce n'est pas le cas
revenez à votre document principal qui est mal fichu. Si les
INCLUDEPICTURE sont tous OK dans le document de fusion
refaites Alt+F9 puis Ctrl+A puis F9

Anacoluthe
« Dans l'impossible fusion la confusion »
- Jacques LACAN



Anacoluthe
Le #1403274
Bonjour !

'' nous a écrit ...
En suivant vos conseils, j'ai aisément compris ce qui n'allait pas
J'utilisais en fait un chemin relatif pour le INCLUDEPICTURE. Or le
document généré après la fusion n'est pas enregistré
automatiquement dans le même répertoire que le document maître.
D'où le problème...


Question idiote : n'auriez-vous pas moins de soucis en incorporant
définitivement vos images dans vos documents de fusion ?
Je supprimerais le commutateur d et je déchamperais tout après
la fusion avec Ctrl+A Ctrl+Maj+F9 . Ainsi les documents produits
pourraient être enregistrés n'importe où.
Le déchampage du document de fusion pourrait être automatisé en
vba en utilisant l'événement d'application MailMergeAfterMerge.

Notez que cet événement vous donne accès à votre document de fusion
quelque soit son nom si c'est ça qui vous gêne dans la fin de votre
dernière question (car accéder à Documents("Lettre 1") ne pose
aucune difficulté pour éditer par vba votre document de fusion).

Anacoluthe
« Dans l'impossible fusion la confusion »
- Jacques LACAN

blancmunier
Le #1403273
re-bonjour, re-merci

Question idiote : n'auriez-vous pas moins de soucis en incorporant
définitivement vos images dans vos documents de fusion ?


Non, car la fusion se fait sur un certains nombre d'enregistrements
paramètrés dans une application annexe. Ainsi rien ne doit être
figé.
Merci beaucoup pour le tuyau "MailMergeAfterMerge". Je devrais réussir
à manipuler le document de fusion en utilisant un module de classe.
Donc en résumé je n'ai plus qu'un seul problème qui me paraît
absurde :
Je n'arrive vraiment pas à enregistrer mon document maitre, sans que
le champs {INCLUDEPICTURE
"\\Frdefpeoplerh\App_People\PS_Sirh_User\Img\001500.bmp" *
MERGEFORMAT d} soit modifié avec un chemin relatif.
Quelqu'un a-t-il déjà rencontré ce problème. Ou quelqu'un a-t-il
déjà utilisé un champs image (incorporant un champs de publipotage
dans l'adresse de l'image) avec chemin absolu.
Merci encore pour vos lumières.
Yvan


Je supprimerais le commutateur d et je déchamperais tout après
la fusion avec Ctrl+A Ctrl+Maj+F9 . Ainsi les documents produits
pourraient être enregistrés n'importe où.
Le déchampage du document de fusion pourrait être automatisé en
vba en utilisant l'événement d'application MailMergeAfterMerge.

Notez que cet événement vous donne accès à votre document de fusi on
quelque soit son nom si c'est ça qui vous gêne dans la fin de votre
dernière question (car accéder à Documents("Lettre 1") ne pose
aucune difficulté pour éditer par vba votre document de fusion).

Anacoluthe
« Dans l'impossible fusion la confusion »
- Jacques LACAN


blancmunier
Le #1403268
Je n'arrive vraiment pas à enregistrer mon document maitre, sans que
le champs {INCLUDEPICTURE
"\\Frdefpeoplerh\App_People\PS_Sirh_User\Img\001500.bmp" *
MERGEFORMAT d} soit modifié avec un chemin relatif.


Je répond à ma question.
Il fallait en fait décocher l'option
Outil/OPtion/Général/Options web/Fichiers/Mettre à jour les liens
lors de l'enregistrement
ou en vba, exécuter :
Application.DefaultWebOptions.UpdateLinksOnSave = False

Désormais tout tourne exactement comme je le désirais
Merci beaucoup, et hésitez pas à me demander un service en retour. Je
suis devenu presque calé en publipostage ;-)

Anacoluthe
Le #1403252
Bonjour !

'' nous a écrit ...
Je n'arrive vraiment pas à enregistrer mon document maitre, sans que
le champs {INCLUDEPICTURE
"\\Frdefpeoplerh\App_People\PS_Sirh_User\Img\001500.bmp" *
MERGEFORMAT d} soit modifié avec un chemin relatif.


Je répond à ma question.
Il fallait en fait décocher l'option
Outil/OPtion/Général/Options web/Fichiers/Mettre à jour les liens
lors de l'enregistrement
ou en vba, exécuter :
Application.DefaultWebOptions.UpdateLinksOnSave = False

Désormais tout tourne exactement comme je le désirais
Merci beaucoup, et hésitez pas à me demander un service en retour. Je
suis devenu presque calé en publipostage ;-)


Merci du retour et bravo !
Cette option cachée parmi celles dites 'Web' est assez vicieuse !

Anacoluthe
« L'ennui, avec l'absolu, c'est que quand on le quitte,
on tombe nécessairement dans le relatif. »
- Jean-Claude CLARI


Poster une réponse
Anonyme