IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Fusion et publipostage - Insertion d'images - Liste ds Excel - VBA ou Word [FAQ]


Sujet :

Contribuez

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    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 :
    "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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 (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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    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.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro()
    Dim NomChamp as string
        NomChamp = "Champ Image"
        InsérerChampImageEtFusion NomChamp
    End sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    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
    "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.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    {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 : Sélectionner tout - Visualiser dans une fenêtre à part
    {INCLUDEPICTURE fille.jpg \* MERGEFORMAT}
    l'insertion d'imfonctionne bien
    Merci d'avance.
    Images attachées Images attachées  

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    Petite question subsidiaire: ca mazrcherai avec un .pdf au lieu de .jpg ?

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,
    L'écran Word aurait été plus judicieux.


    http://heureuxoli.developpez.com/off...ipostage/#L6-B

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    le voila ...

    Vois tu la boulette ?
    Images attachées Images attachées  

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Fais shift + F9 dans le champ du milieu.

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    voila ce que ca donne
    Images attachées Images attachées  

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    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.

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 1
    Points : 1
    Points
    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

  11. #11
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    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 Fichiers attachés

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 71
    Points : 46
    Points
    46
    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.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 16
    Points
    16
    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

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 71
    Points : 46
    Points
    46
    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

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    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.

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 71
    Points : 46
    Points
    46
    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.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 16
    Points
    16
    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.

  18. #18
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 71
    Points : 46
    Points
    46
    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 Images attachées   

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 16
    Points
    16
    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.


  20. #20
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    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).

Discussions similaires

  1. liste deroulante excel + vba
    Par Maxime082 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/05/2011, 22h42
  2. Réponses: 10
    Dernier message: 24/04/2008, 16h22
  3. Liste déroulante Excel VBA
    Par a.dequidt dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/09/2007, 17h34
  4. Publipostage et insertion d'images
    Par stefane26 dans le forum Word
    Réponses: 3
    Dernier message: 20/06/2007, 22h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo