Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

et un nouveau problème avec le INCLUDEPICTURE !

9 réponses
Avatar
blancmunier1
Bonjour,
Je fais encore appel =E0 vous !
Je vous explique mon nouveau probl=E8me (il est li=E9 en fait =E0 mon
probl=E8me de vendredi, mais c'est mieux de le traiter s=E9par=E9ment).
J'essaie =E0 un moment de fusionner un document de publipostage via VBA.
Voici un extrait de mon code VBA :
WordBasic.MailMergeOpenDataSource Name:=3DDataFiles$, ReadOnly:=3D0
WordBasic.MailMerge MergeRecords:=3D0, Destination:=3D0, MailMerge:=3D1

Ce qui fonctionne tr=E8s 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=E9 dans un autre, car le nom de mon image,
correspond au champs "matricule" .bmp.
Hors apr=E8s fusion, j'obtiens sur mes diff=E9rents 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=E9 de pr=E9c=E9der le code VBA ci-dessus avec :
Selection.WholeStory
Selection.Fields.Update
ActiveWindow.View.ShowFieldCodes =3D False
Pour le forcer =E0 basculer le champs en image.
Et l=E0, 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 =E0 mon tour !
Merci en tout cas =E0 la communaut=E9 !
Bonne semaine
Yvan

9 réponses

Avatar
Circé
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


Avatar
blancmunier1
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
Avatar
blancmunier1
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
Avatar
Anacoluthe
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

Avatar
blancmunier
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
"\FrdefpeoplerhApp_PeoplePS_Sirh_UserImg{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



Avatar
Anacoluthe
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

Avatar
blancmunier
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
"\FrdefpeoplerhApp_PeoplePS_Sirh_UserImg01500.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


Avatar
blancmunier
Je n'arrive vraiment pas à enregistrer mon document maitre, sans que
le champs {INCLUDEPICTURE
"\FrdefpeoplerhApp_PeoplePS_Sirh_UserImg01500.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 ;-)

Avatar
Anacoluthe
Bonjour !

'' nous a écrit ...
Je n'arrive vraiment pas à enregistrer mon document maitre, sans que
le champs {INCLUDEPICTURE
"\FrdefpeoplerhApp_PeoplePS_Sirh_UserImg01500.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