Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > Contribuez
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 22/06/2007, 17h13   #1
Inactif(ve)
 
Avatar de ouskel'n'or
 
Date d'inscription: février 2005
Localisation: 45,10 N 5,43 E
Messages: 12 494
Par défaut Fusion et publipostage - Insertion d'images - Liste ds Excel - VBA ou Word

Le but : Insérer les images dont les adresses se trouvent dans une base de données Excel.

Dans EXCEL :
Les adresses des images doivent être introduites en tant que liens vers les fichiers image,
Les séparateurs de noms de répertoires doivent comporter deux "\\" et enfin, les adresses doivent être encadrées de guillemets. Ce qui donne dans la cellule :
Citation:
"c:\\Mes images\\cocorico.jpg"
Dans WORD
1 - Afficher les codes de champs
Barre d'outils "Outils" -> Options -> Affichage -> Valider "Code de champs"
Pour se faciliter la tâche, on peut créer une macro et lui affecter des touches de fonction -> Personnaliser -> Commandes -> Macro -> Sélectionner la macro -> Bouton "Clavier"
La macro :
Code :
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 (normalement suivi de trois 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 champ de fusion est inséré dans le précédent, c'est à dire dans le champ Image.

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.
Normal -> la fusion n'est pas encore réalisée.

5 - Lancer la fusion

6 - Mise à jour des champs
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, les images apparaissent !

Ou par macro
Code :
Sub FusionEtMiseAjour()
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
    DoEvents
    Selection.WholeStory 'sélectionne tout le texte de la lettre type
    Selection.Fields.Update 'Met les champs à jour (affiche les images)
End sub
Pour la solution par macro, voir le post suivant.

Dernière modification par ouskel'n'or ; 14/09/2007 à 16h05.
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/06/2007, 09h49   #2
Inactif(ve)
 
Avatar de ouskel'n'or
 
Date d'inscription: février 2005
Localisation: 45,10 N 5,43 E
Messages: 12 494
Par défaut

Remplace, par macro, les parties 1 à 6 du post précédent (!)
Dans le document Word, renseigner le nom du champ image
Se placer dans le document principal au point d'insertion de l'image puis lancer la macro.
Code :
Sub Macro()
Dim NomChamp as string
    NomChamp = "Champ Image"
    InsérerChampImageEtFusion NomChamp
End sub
Code :
Sub InsérerChampImageEtFusion(NomDuChampImage)
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
        PreserveFormatting:=False
    Selection.TypeText Text:="INCLUDEPICTURE "
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
        PreserveFormatting:=False
    Selection.TypeText Text:="MERGEFIELD " & Chr(34) & NomDuChampImage & Chr(34)
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        .Execute Pause:=False
    End With
    Selection.WholeStory
    Selection.Fields.Update
End Sub
NB - Penser à formater les liens dans Excel selon le modèle
Citation:
"c:\\Mes images\\cocorico.jpg"
PS - Cette méthode fait disparaître le message "Erreur°! Nom du fichier non spécifié." qui apparaît dans le document (sans conséquence quant au résultat final) avec la solution manuelle d'insertion du premier post.

Dernière modification par ouskel'n'or ; 14/09/2007 à 16h04.
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2009, 09h17   #3
Membre du Club
 
Date d'inscription: novembre 2008
Messages: 106
Par défaut

Bonjour,

Je tente le publipostage d'image et suis tombé sur ton post très complet.

Mais je ne touche pas au but (pour info je suis sous office2007).

J'ai cette ligne dans mon fichier word:
Code :
{INCLUDEPICTURE { MERGEFIELD image}  \* MERGEFORMAT}
La bdd utilisée est en pj (impression d'écran).
La fusion semble fonctionné car les autres champs apparaissent bien.

Mais la fusion de l'image ne sait que me dire:"Erreur°! Nom du fichier non spécifié." ;
Malgré les mises à jour par F9.

As tu une idée ?

nb: si j'insère le champ
Code :
{INCLUDEPICTURE fille.jpg \* MERGEFORMAT}
l'insertion d'imfonctionne bien
Merci d'avance.
Images attachées
Type de fichier : jpg minibase.jpg (60,9 Ko, 13 affichages)
Viggen0020 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2009, 09h31   #4
Membre du Club
 
Date d'inscription: novembre 2008
Messages: 106
Par défaut

Petite question subsidiaire: ca mazrcherai avec un .pdf au lieu de .jpg ?
Viggen0020 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2009, 13h37   #5
Responsable Word

 
Avatar de Heureux-oli
 
Nom : Olivier Lebeau
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 45
Messages: 13 270
Par défaut

Salut,
L'écran Word aurait été plus judicieux.


http://heureuxoli.developpez.com/off...ipostage/#L6-B
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles



Visitez le blog Office !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2009, 13h58   #6
Membre du Club
 
Date d'inscription: novembre 2008
Messages: 106
Par défaut

le voila ...

Vois tu la boulette ?
Images attachées
Type de fichier : jpg word.jpg (5,5 Ko, 13 affichages)
Viggen0020 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2009, 15h47   #7
Responsable Word

 
Avatar de Heureux-oli
 
Nom : Olivier Lebeau
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 45
Messages: 13 270
Par défaut

Salut,

Fais shift + F9 dans le champ du milieu.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles



Visitez le blog Office !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2009, 16h28   #8
Membre du Club
 
Date d'inscription: novembre 2008
Messages: 106
Par défaut

voila ce que ca donne
Images attachées
Type de fichier : jpg word2.jpg (11,4 Ko, 10 affichages)
Viggen0020 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2009, 16h32   #9
Responsable Word

 
Avatar de Heureux-oli
 
Nom : Olivier Lebeau
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 45
Messages: 13 270
Par défaut

Salut,

Le publipostage a été exécuté, tu n'est pas en mode aperçu du résultat.

Je ne vois pas où se trouve l'erreur.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles



Visitez le blog Office !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/09/2009, 21h31   #10
Invité de passage
 
Date d'inscription: septembre 2009
Messages: 1
Par défaut la photo ne suis pas

J'essaye de faire une carte adhérent à pour mon club, et pour cela j'ai une base de donnée sous excel et je veux fusionner avec une carte type sous word
je viens de faire les différents document en suivant vos indications mais je suis sous office XP,
j'ai bien fais attention au double \\ et au "" dans la feuille de calul pour l'adresse de la photo. et j'ai bien enregistré les champs.
Mais lors de la fusion les autres champs pour le nom, prénom, suivent mais pas la photo, la photo reste la même.
je ne comprens pas!
Merci par avance pour vos réponses
deniswax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/09/2009, 10h39   #11
Membre du Club
 
Date d'inscription: novembre 2008
Messages: 106
Par défaut

Bonjour Heureux-oli, et les autres,

Est ce que les fichiers image utilisés, les données et le .doc (joints) peuvent te permettre de voir ou j'ai fauté ? (avec une maj des chemin certainement ...)

Merci d'avance,

G.
Fichiers attachés
Type de fichier : zip publi_avec_image.zip (43,1 Ko, 20 affichages)
Viggen0020 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/09/2009, 11h25   #12
Nouveau membre du Club
 
Date d'inscription: septembre 2006
Messages: 68
Par défaut

Bonjour,

J'ai exactement le même pb : des cartes d'adhérents sous Word à fusionner avec des données sur une feuille Excel dont un champ "Photo" renseigne l'adresse de fichier jpg.
Précision, je suis sous MS Office 2000.

En fait, cela semble fonctionner sans les "" ou les \\ dans l'adresse indiquée dans la feuille Excel, mais le code INCLUDEPICTURE inséré dans Word fonctionne à l'aperçu écran si on met une macro tel que décrite ci-dessus et qui intervient lors du passage d'un enregistrement à l'autre par les boutons de commande.

Le pb, c'est quà la fusion, les macros n'interviennent pas et on a la première image pour tous les enregistrements.

Merci de votre aide.
marcb03 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/12/2009, 11h44   #13
Candidat au titre de Membre du Club
 
Date d'inscription: mars 2009
Messages: 26
Par défaut

Citation:
Envoyé par Viggen0020 Voir le message
Bonjour Heureux-oli, et les autres,

Est ce que les fichiers image utilisés, les données et le .doc (joints) peuvent te permettre de voir ou j'ai fauté ? (avec une maj des chemin certainement ...)

Merci d'avance,

G.
Bonjour ! bon c'est un peu tard pour te répondre, mais c'est pas grave !
Ca aidera peut être ceux qui passeront par la suite.

Ton problème se situe sur ton champ image dans Word : tu as oublié les guillemets qui doivent encadrer le champ MERGEFIELD image.





Bon à part ça, j'ajouterai juste que :

1/Il n'est pas nécessaire de mettre des guillemets dans le chemin du fichier image sur Excel.
2/les guillemets qui encadrent le champ MERGEFIELD image, eux, sont nécessaires.
3/Privilégier la fusion vers un nouveau document. Sélectionner tout le texte (Control+A). Mettre à jour avec la touche F9. Si le document doit être sauvegarder, utiliser le commutateur \d (c'est ce que j'ai fait) pour que l'image ne soit pas stockée sur le document Word même (ainsi le fichier ne sera pas alourdi).

C'est vrai qu'on peut aussi se contenter d'utiliser le bouton Aperçu des résultats (Mode publipostage symolisé par Abc) mais quand on passe à un nouvel enregistrement il faut à chaque fois faire CTRL+A puis F9 pour mettre à jour. (Je pense que c'est pour ça que beaucoup ont l'impression que l'image est identique sur toutes leurs pages...)

Voilà. Si ces quelques remarques éclairent des lanternes, ce sera déjà pas mal
petitorco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/12/2009, 11h13   #14
Nouveau membre du Club
 
Date d'inscription: septembre 2006
Messages: 68
Par défaut

Bonjour,

Merci pour cette réponse.

Cependant, après la fusion vers un nouveau document, les x pages créées dans ce nouveau fichier ont toutes l'image qui était en aperç écran sur le fichier type.
Y a-t-il un moyen pour que chaque page ait l'image qui corresponde à l'enregistrement qui la concerne ?

Merci
marcb03 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/12/2009, 14h17   #15
Candidat au titre de Membre du Club
 
Date d'inscription: mars 2009
Messages: 26
Par défaut

Bonjour,

Citation:
Y a-t-il un moyen pour que chaque page ait l'image qui corresponde à l'enregistrement qui la concerne ?
Ben en fait ça devrait déjà être le cas !

1/Si tout est ok au niveau de la fusion (le chemin dans la source de données excel et le champ image dans ton document word)
2/Si après avoir fusionné vers un nouveau document, tu as bien fait CTRL+A puis tout F9.

Normalement tu as bien une image différente à chaque page de ton nouveau document.

Si ca marche toujours pas, poste (si tu peux) une capture d'écran :
-de ton champ image excel
-de ton champ image (au format code de champ) word.

Cordialement.
petitorco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/12/2009, 15h11   #16
Nouveau membre du Club
 
Date d'inscription: septembre 2006
Messages: 68
Par défaut

Eh ben non! Ca marche pas!

En tout cas pas dans mon cas.

J'ai pensé que ça pouvait venir du fait que j'ai mis les champs image dans une zone de texte pour pouvoir gérer plus facilement la mise en page.
Mais ça ne change rien non plus.

Ci-joint les copies d'écran.

Merci.

Dernière modification par marcb03 ; 29/12/2009 à 19h45.
marcb03 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/12/2009, 17h11   #17
Candidat au titre de Membre du Club
 
Date d'inscription: mars 2009
Messages: 26
Par défaut

Re-bonjour,

Alors d'après ce que je vois y a au moins 3 soucis :

1/Sur excel : ton champ image devrait ressembler à ça :
C:\\Krav Maga - Adhérents - Photo O.BARRAUD.jpg
On est d'accord que si "Adhérents" est un sous dossier de Krav Maga, ton chemin sera :
C:\\Krav Maga\\Adhérents\\Photo O.BARRAUD.jpg

Si "Photo" est un sous dossier de Adhérents alors:
C:\\Krav Maga\\Adhérents\\Photo\\O.BARRAUD.jpg

Dans tous les cas, il te faut des anti-slash.
Et il te manque de toute façon le chemin complet de tes images :
Photos/Krav Maga - Adhérents - etc. <= ici on ne sait pas si ca se trouve sur C: ou D: etc.

Donc chemin à revoir sur Excel.

2/Sur Word.
a) oublie le mot clé "si alors sinon" pour le moment. Regarde déjà si sans mot clé ça fonctionne. Pareil pour la zone de texte.

b)ton champ include picture est incompet. Y te manque la partie mergeformat (regarde mon précédent post) qui est passée à la trappe chez toi.

Voilà essaie déjà ces pistes.

Cordialement.
petitorco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/12/2009, 19h46   #18
Nouveau membre du Club
 
Date d'inscription: septembre 2006
Messages: 68
Par défaut

OK.

Pour le chemin spécifié dans le fichier Excel :
- L'intérêt est que le répertoire "Photos" est un sous-répertoire du répertoire dans lequel est le fichier-type Word. Donc pas besoin de redonner tt le chemin.
- Et puis, en indiquant tt le chemin, si je change de lecteur (de V à C par exemple), je ne peux plus accéder à mes images. Alors que là je peux utiliser mon fichier Word ou qu'il soit (en fait une clé USB qui peut être nommée d'une lettre différente selon le PC à partir duquel j'y accède.
De + le chemin tel que je l'ai spécifié dans le fichier Excel fonctionne et permet la fusion. Ce n'est donc pas le pb.

Mais pour te permettre d'avancer, j'ai fait les modifs que tu m'indiques (Cf. captures d'écran ci-joint).

Désolé, mais comme je m'y attendais, la fusion vers un document conserve la dernière image appelée par le document-type pour tous les enregistrements.
Images attachées
Type de fichier : jpg Fichier Word.JPG (197,0 Ko, 3 affichages)
Type de fichier : jpg Fichier Excel.JPG (224,1 Ko, 3 affichages)
marcb03 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/12/2009, 21h48   #19
Candidat au titre de Membre du Club
 
Date d'inscription: mars 2009
Messages: 26
Par défaut

Ok alors on va faire simple :

1/tu refais un publipostage basique :
tu crées un dossier dans C: que tu appelles "publipostage".
a) tu mets 2 images au choix à l'intérieur.
b) Toujours à l'intérieur du dossier "publipostage", tu crées une source de données Excel (que tu nommes "SD") toute simple avec 2 champs : prénom et image.
Tu remplis 2 lignes avec 2 prénoms et tu ajoutes les 2 chemins des 2 images (exactement comme tu l'as fait dans ta dernière capture d'écran).

2/tu crées un document word "lettre" et tu commences normalement ton publipostage. Utilise le champ Include Picture comme tu l'as fait pour ton vrai courrier.

Si ça marche tant mieux !
Si ça marche pas, envoie tes fichiers (l'exemple basique que tu viens de créer) sur le forum.

Cordialement.

petitorco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/12/2009, 08h09   #20
Responsable Word

 
Avatar de Heureux-oli
 
Nom : Olivier Lebeau
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 45
Messages: 13 270
Par défaut

Salut,

Il faut rafarîchier les images par Ctrl + A pour sélectionner le contenu du document et ensuite F9 pour actualiser les champs (ce qui mettra les images à jour).
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles



Visitez le blog Office !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation
NEWS WORDF.A.Q WORDTUTORIELS WORDOUTILS WORDLIVRES WORDOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > Contribuez



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 10h26.


Vos questions techniques : forum d'entraide Word - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.