Publipostage avec insertion dynamique d'images

Le
Arundel
Dans la FAQ du 13/05/2005 marina présentait une solution de publipostage
avec insertion dynamique d'images fondée sur l'utilisation de
INCLUDEPICTURE.
Cette solution fonctionne SAUF lorqu'il est nécessaire de compléter le code
par un test préalable (par exemple pour savoir si le fichier image est
renseigné dans le tableau Excel pilote de publipostage).

Autrement dit ceci fonctionne :
{ INCLUDEPICTURE "{ MERGEFIELD Photos}" d }

Alors que cela ne fonctionne pas :
{ if {MERGEFIELD Photos} <> ""} { INCLUDEPICTURE "{ MERGEFIELD Photos}"
d } }

Symptome : c'est toujours la même image qui est affichée sur toutes les
pages comme si la référence au fichier à charger n'était pas résolue.

D'avance merci à qui pourra m'indiquer comment résoudre cette difficulté
(s'il y a une solution ).

Arundel.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
tisane
Le #1588331
Bonjour Arundel,

Dans la FAQ du 13/05/2005 marina présentait une solution de publipostage
avec insertion dynamique d'images fondée sur l'utilisation de
INCLUDEPICTURE.
Cette solution fonctionne SAUF lorqu'il est nécessaire de compléter l e code
par un test préalable (par exemple pour savoir si le fichier image est
renseigné dans le tableau Excel pilote de publipostage).
Autrement dit ceci fonctionne :
{ INCLUDEPICTURE "{ MERGEFIELD Photos}" d }
Alors que cela ne fonctionne pas :
{ if {MERGEFIELD Photos} <> ""} { INCLUDEPICTURE "{ MERGEFIELD Photos}"
d } }
Symptome : c'est toujours la même image qui est affichée sur toutes l es
pages comme si la référence au fichier à charger n'était pas ré solue.


Même avec la faute de frappe corrigée (accolade fermante en trop :
fermée après ""), en effet, ta formule, au demeurant très logique,
donnera toujours la première image car le champ imbriqué n'est pas mis
à jour.

Tu n'as pas donné de valeur pour la condition fausse. Qu'aurais-tu
voulu en l'absence d'image ?

Voici une solution pour remplacer l'image manquante par une autre
image.
{ INCLUDEPICTURE "{ IF { MERGEFIELD Photos } <>"" { MERGEFIELD
Photos } "C:\Ton_Chemin\Photo_de_Remplacement.xxx" }" }

Cette image de remplacement peut être un minuscule carré blanc ;-)
Bidouillage peut-être, mais en attendant LA solution...

--
Tisane

Geo
Le #1588319

S'il y a une solution, je pense qu'elle passe par le VBA, peut être avec une macro
événementielle...


où faire faire la fusion par macro et là on fait ce qu'on veut.

--
A+

Arundel
Le #1588307
Bonjour à tous,

Un grand merci collectif car grace à vous je suis sorti de la semoule.

C'est Tisane qui m'a donné la solution définitive consistant à permuter
l'INCLUDEPICTURE et le test de présence.

Je n'ai plus qu'à trouver la photo de remplacement dans le cas où le test
est négatif. Comme il me faut quelque chose qui soit vide, je peux toujours
regarder parmi les candidats à la présidentielle ;-)

Et encore merci à vous tous !!!
Tisane
Le #1588306
Je n'ai plus qu'à trouver la photo de remplacement dans le cas où le test
est négatif. Comme il me faut quelque chose qui soit vide, je peux
toujours regarder parmi les candidats à la présidentielle ;-)


Un bulletin blanc, pardon... une image..., de 1 pixel sur 1 pixel au format
gif devrait suffire ;-)
Enfin, fais-la un peu plus grande pour pouvoir éventuellement la
sélectionner par la suite...
Tu peux utiliser Paint (dans les accessoires de Windows) pour la créer.

--
Tisane

[...]

Circé
Le #1588303
Bonjour Arundel,

Effectivement, avec le champ IF, ça ne fonctionne pas même si on
corrige ton champ dont la syntaxe n'est pas bonne :

{ IF {MERGEFIELD Photos} <> "" "{ INCLUDEPICTURE "{ MERGEFIELD Photos}"
d }" "" }


Pour reprendre une expression anacoluthienne ;) le champ IF ne passe
pas la fusion, il est déchampé avant... En clair, ça veut dire qu'une
fois la fusion faite, le champ n'est plus un champ, et tu as droit à un
message d'erreur.
Si tu vois toujours la même image et non pas un message d'erreur, c'est
parce que tu as dû simulé une fois la fusion en cliquant sur le bouton
ABC, et c'est la première image qui apparaît. Comme tu peux le
constater en appuyant sur les touches ALT+F9, l'image n'est plus un
champ.

S'il y a une solution, je pense qu'elle passe par le VBA, peut être
avec une macro événementielle...

Circé
http://faqword.free.fr




Le 25/03/2007, Arundel a supposé :
Dans la FAQ du 13/05/2005 marina présentait une solution de publipostage avec
insertion dynamique d'images fondée sur l'utilisation de INCLUDEPICTURE.
Cette solution fonctionne SAUF lorqu'il est nécessaire de compléter le code
par un test préalable (par exemple pour savoir si le fichier image est
renseigné dans le tableau Excel pilote de publipostage).

Autrement dit ceci fonctionne :
{ INCLUDEPICTURE "{ MERGEFIELD Photos}" d }

Alors que cela ne fonctionne pas :
{ if {MERGEFIELD Photos} <> ""} { INCLUDEPICTURE "{ MERGEFIELD Photos}" d }
}

Symptome : c'est toujours la même image qui est affichée sur toutes les pages
comme si la référence au fichier à charger n'était pas résolue.

D'avance merci à qui pourra m'indiquer comment résoudre cette difficulté
(s'il y a une solution ...).

Arundel.


Circé
Le #1588301
Bonjour Geo,



S'il y a une solution, je pense qu'elle passe par le VBA, peut être avec
une macro événementielle...


où faire faire la fusion par macro et là on fait ce qu'on veut.


Oui... De toutes façons, la solution passe par une macro... Tu es bien
d'accord ?... ;)

Circé


Publicité
Poster une réponse
Anonyme