Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/06/2007, 17h04   #1
Invité régulier
 
Inscription : décembre 2006
Messages : 50
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : décembre 2006
Messages : 50
Points : 8
Points : 8
Par défaut Publipostage et image

Voilà plusieurs heures que j'essaye en vain de publiposter des images.

le publipostage de champ texte fonctionne parfaitement.

ma source de donnée :
Code :
1
2
3
 
image1;
d:\\1.gif;
dans mon fichier word :
Code :
1
2
 
{ INCLUDEPICTURE "{ MERGEFIELD "image1" }" \* MERGEFORMAT }
quand je lance le publipostage vers un nouveau document et que je fais ctrlA + F9, je vois une croix rouge à la place de mon image.
quand je vais dans le menu Edition->liaisons j'ai dans la colonne fichier source :
si j'utilise :
Code :
1
2
 
{ INCLUDEPICTURE "d:\\1.gif" \* MERGEFORMAT }
tout fonctione correctement.

mon analyse :
le moteur de publipostage de word ne transforme pas le champ MERGEFIELD quand il se trouve inclus dans le champ INCLUDEPICTURE.

ce que je ne comprends pas très bien, c'est que j'ai l'impression d'être le seul à avoir ce problème précis.

quelqu'un à une idée ?

merci.
javaweb44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 17h23   #2
Invité régulier
 
Inscription : décembre 2006
Messages : 50
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : décembre 2006
Messages : 50
Points : 8
Points : 8
Par défaut infos supplémentaires

j'ajoute que j'ai testé sur word 2000 et word 2003.
donc vraiment je suis perdu.

quelqu'un pourrait il me donner un exemple tout simple zippé qui fonctionne
(une base .txt + le fichier word + 1 image)

merci.
javaweb44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 19h23   #3
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
J'ai pas encore trouvé comment faire avec Excel, par contre, dans ma signature, il y a un lien vers un article sur le publipostage et une partie traite des images, mais c'est avec Access.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 11h35   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
J'ignore si mes observations ont à voir avec ton pb mais j'ai un "truc" invraissemblable qui se produit :
J'insère un champ image dans le document de fusion.
J'ajoute le champ de fusion correspondant dans la base de données Excel.
Dans ce champ se trouve l'adresse de l'image.
Je lance la fusion, tous les documents ont la même image. Ça, on le sait.

Premier sujet d'étonnement :
Ce n'est pas l'image de la ligne un qui est prise, ni de la ligne deux, ni de la trois mais celle de la ligne la quatre.
Pas d'adresse dans la ligne quatre => pas d'image ! Même si toutes les autres lignes sont renseignées.

Autre sujet d'étonnement :
Dans la lettre type issue de la fusion, ce n'est pas le "résultat" de la fusion mais le champ complet du doc principal lui-même (celui indiqué ci-après { INCLUDEPICTURE { etc. ) accompagné du nom du fichier.

Une autre observation intéressante :
Si l'on renseigne toutes les lignes de l'adresse des images, on récupère bien l'adresse de l'image correspondante à la ligne dans la base de donnée... mais l'image reste celle dont l'adresse se trouve sur la ligne 4 (#!§#¤!??? !)

Le champ dans le document principal :
{ INCLUDEPICTURE { MERGEFIELD "Adresse_electronique" } \* MERGEFORMAT }
On peut retirer "\* MERGEFORMAT", ça ne change rien.

Tu es là, Olivier ? Allez, au boulot
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 12h57   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Par défaut Fusion avec image, ça vient...

Nouveau constat :
Dans les lettres types, alors que j'ai l'image de la ligne 4 dans chacune d'elles, j'ai, dans le champ image l'adresse de l'image correspondant à la ligne de fusion.
Ex pour la ligne 1 :
Citation:
{ INCLUDEPICTURE C:\\Mes images\\Allez les bleus.gif }
On observe (au bout d'un certain temps ) qu'il n'y a pas de guillemet autour de l'adresse de l'image.
Évidemment, si on les ajoute, on a la bonne image...
par contre, si on les mets ainsi dans le champ du document principal
Citation:
{ INCLUDEPICTURE "{ MERGEFIELD "Adresse_electronique" }" \* MERGEFORMAT }
dans les lettres types on obtient... le nom de champ, ici "Adresse_electronique"
Mais on n'est pas loin... si on arrive à insérer les guillemets là oui faut quanty faut
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 13h11   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Je m'arrache les cheveux, avec 2007, j'ai la place de l'image et pas l'image !!

Jusqu'à présent, je n'y arrive qu'avec Access (grrrrrrrrrr).
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 16h26   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Par défaut Fusion avec images ? C'est tout bon !

Youpi, j'ai réussi !
Insertion du champ :
1 - Afficher les codes de champs
Barre d'outils "Outils" -> Options -> Affichage -> Valider "Code de champs"
Pour me faciliter la tâche, j'ai créé une macro et lui ai affecté des touches de fonction -> Personnaliser -> Commandes -> Macro -> Sélectionner la macro -> Bouton "Clavier"
La macro :
Code :
1
2
3
4
5
6
7
Sub CodeChampVisiblePasVisible()
    if ActiveWindow.View.ShowFieldCodes then
         ActiveWindow.View.ShowFieldCodes = False
      else
         ActiveWindow.View.ShowFieldCodes = True
    Endif
End Sub
2 - Insertion du champ "image" -> Insertion -> Champ -> IncludePicture (inclureImage)

Donne { INCLUDEPICTURE \* MERGEFORMAT }

3 - Insertion du champ de fusion
Se placer après le premier espace suivant { INCLUDEPICTURE (en comporte trois, des espaces...)
Puis -> Barre d'outils "Publipostage" -> Icône "Insérer les champs de fusion" -> sélectionner le champ "Image" de la base de données. Le champs est inséré dans le précédent.

Donne {.INCLUDEPICTURE.{.MERGEFIELD."Champ Image".}..\*.MERGEFORMAT.}
où les points figurent les espaces et "Champ Image" le nom de champ.

4 - Dévalider l'affichage des codes de champs
Le message "Erreur°! Nom du fichier non spécifié." s'affiche
Pas se laisser impressionner

5 - Lancer la fusion
Puis, dans la "lettre type" issue de la fusion, sélectionner tout le Texte (Ctrl + A) et frapper la touche F9. Les champs se mettent à jour.

Ou par macro
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub FusionEtMiseAjour()
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
    Selection.WholeStory 'sélectionne tout le texte de la lettre type
    Selection.Fields.Update 'Met les champs à jour (affiche les images)
End sub
Ce n'est pas simple ? En effet, mais automatiser tout ça reste du domaine du possible. Mais je n'ai pas encore réussi

EDIT
J'ai oublié un détail d'importance !
Dans Excel, les adresses des images doivent être introduites en tant que liens,
Les séparateurs de noms de répertoires doivent comporter deux "\\" et enfin, les adresses doivent être encadrées de guillemets (les guillemets qui manquaient dans le champ de fusion -> cf remarque dans un post précédent)
Ce qui donne dans la cellule :
Citation:
"c:\\Mes images\\cocorico.jpg"
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 22h15   #8
Invité régulier
 
Inscription : décembre 2006
Messages : 50
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : décembre 2006
Messages : 50
Points : 8
Points : 8
Par défaut miracle !!

un grand merci à ouskel'n'or,
j'ai moi aussi enfin réussi à fire fonctionner le publipostage d'images.

j'ai suivi à la lettre le dernier message de ouskel'n'or et à ma grande surprise ma maquette a fonctionné.

j'étais d'autant plus surpris que ca ressemblait excatement à ce que je faisais.
sauf que je le faisais à la main, c'est à dire que je tapais les commandes INCLUDEPICTURE et MERGEFIELD à la main.
je me suis donc retrouvé avec 2 exemples côte à côte, l'un marchait (celui fait en utilisant les boutons proposés par word) et l'autre exemple ne marchait pas.
je l'ai ai bien examiné tous les 2 et là j'ai vu la différence.
Regardé bien j'ai fais une copie d'écran et je l'ai déposé sur mon site web:


la différence se trouve au niveau des accolades, ce ne sont pas les mêmes accolades.
étant développeur je tapais à la main les accolades puis la commande MERGEFIELD, mais cette technique ne fonctionne pas puisque l'accolade tapé ne permet pas d'être équivalente à une vrai commande inséré en cliquant sur les boutons d'insertion proposés par word.

je suis bien content d'être débarrasé de ce problème où je me suis arraché les cheveux!!!
javaweb44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 22h53   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Merci pour la précision apportée, j'ai alors rencontré le même problème lié aux accolades, je les mettais aussi à la main.

Et pour ajouter les accolades d'un champ, Ctrl + F9 fonctionne.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2007, 10h19   #10
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Par défaut La même par macro

Hello javaweb44, si tu veux la macro toute faite pour faire ça, jète un oeil
Ici.
L'avantage étant de supprimer le message d'erreur. L'inconvénient : Le champ image est transparent
Tu vois
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h16.


 
 
 
 
Partenaires

Hébergement Web