[REF] Wiki Page 10 de MichelXld

MichelXld

XLDnaute Barbatruc
Les sujets abordés dans cette page
Le Publipostage Word / Excel.​





Le Publipostage Word /Excel

Le publipostage est un outil qui permet d'envoyer un même document à plusieurs destinataires , en intégrant la personnalisation liée à chacun ( Nom ,Prenom, Civilité, Adresse …)
Le publipostage fonctionne sur le principe d'une base de données ( constituée de champs et d' enregistrements ) et un document principal (Word) qui contient les champs de fusion où vont s'afficher les données extraites de la base.
Il est important de bien structurer la base de données .

Les descriptions qui suivent sont basées sur l'utilisation d'Office XP. Le principe de fonctionnemet reste sensiblement identique pour les autres versions

  • Créer un document de publipostage :
    Pour cet exemple la base de données est dans un classeur Excel, mais il est aussi possible d'utiliser un tableau Word ou une table Access.​

    Quand la base de données Excel est créée , sauvegardez et fermez votre classeur​
    Ouvrez un nouveau document Word​
    Menu Outils​
    Lettres et Publipostage​
    Assistant de Fusion et Publipostage​
    Le volet Office apparaît à droite de l'écran. Suivez les différentes étapes proposées par l'assistant​
    1ere etape de l'assistant : Sélectionnez le type de document ( par exemple "Lettres")​

    2eme étape : Sélectionnez le type de document principal :​

    3eme étape . Séléctionnez la base de données​
    Sélectionnez "Utilisation d'un liste existante" , puis cliquez sur "Parcourir"​

    Remarques :​
    Il est aussi possible de créer un publipostage à partir de la liste des contacts Outlook​
    L'option "Saisie d'une nouvelle liste" permet de créer une nouvelle base de données préformatée (style carnet d'adresses). Cette base sera sauvegardée au format mdb.​
    Recherchez et sélectionnez la source de données (le classeur Excel) contenant les informations à fusionner​
    Chaque feuille (ou plage nommée) est considérée comme une table .​

    Si le classeur contient plusieurs onglets, sélectionnez celui qui vous interesse​
    Cliquez sur OK pour valider​
    Remarque: Si vous renommez ou déplacez ultérieurement la base de données, vous devrez recréer le lien dans le document principal​
    La nouvelle boîte de dialogue qui s'affiche permet de trier et filtrer les destinataires.​
    Chaque champ contient un filtre avancé qui permet d'appliquer 5 critères de filtre ET / OU, et 3 critères de tri​

    Cliquez sur OK​
    Ensuite vous pouvez mettre en page votre document Word​
    Pour insérer un champ dans le document Word , cliquez sur le bouton "Inserez les champs de fusion" dans la barre de menu "Fusion et Publipostage"​

    Remarque : Si la barre de menu "Fusion et Publipostage n'apparaît pas à l'écran​
    Menu Affichage​
    Barre d'outils​
    Sélectionnez l'option "Fusion et Publipostage"​
    La boite de dialogue suivante affiche la liste des champs contenus dans la base de données Excel​
    Choisissez un des Champs (par exemple "leNom")​
    Ensuite Cliquez sur le bouton "Inserer"​
    Puis sur le bouton "Fermer"​
    Le champ est inséré dans le document Word​
    Allez jusqu'à la 5eme étape de l'assistant pour visualiser le résultat​
    L'assistant propose un outil pour faire défiler les enregistrments et avoir un aperçu des champs insérés​

    Vous pouvez aussi utiliser les boutons de la barre de menu "Fusion et Publipostage"​
Il existe une 2eme méthode pour insérer un champ dans le document Word :​
(Les 3 premieres étapes de l'assistant doivent être préalablement réalisées)​
Puis menu Insertion​
Champ​

Sélectionnez mergeField (champFusion) dans la liste​
Saisissez un des noms de champ contenu dans la base de données, par exemple "laDate" (L'entête de la colonne C dans le classeur Excel)​
Cliquez sur OK​
Le champ "laDate" est ajouté dans le document Word​
L'étape 6 permet d'imprimer les documents​

Remarque :​
Pour ne pas gaspiller du papier inutilement , utilisez l'aperçu (étape 5 de l'assistant) pour vérifier prélablement que le résultat correspond à votre attente .Revenez sur l'étape 4 pour modifier votre document si nécessaire.​
A ce stade, Vous avez la possibilité de modifier les lettres et de fusionner avec un nouveau document​


Téléchargez un exemple de publipostage Word/Excel​
Ce lien n'existe plus
Vous devrez recréer le lien vers le classeur "laBase.xls" au moment de l'ouverture du document Word .​

  • Utiliser le Publipostage avec Word 2000 , un mémo de Brigitte .
    Ce lien n'existe plus

  • Comment modifier un Champ inséré dans le document Word :
    Dans le document Word, faites un clic droit sur un des champs​

    Sélectionnez "Basculer les codes de champs" dans le menu contextuel​
    Le résultat est remplacé par les propriétés du champ​

    Vous pouvez modifier le format directement dans le champ (par exemple pour modifier le format de la date)​

    Ensuite, pour revenir en mode normal , refaites un clic droit et resélectionnez "Basculer les codes de champs"​
    IMPORTANT : La mise à jour n'est pas effectuée automatiquement.Vous devez l'activer en suivant la procédure ci-dessous :​
    Menu Edition / Selectionnez tout (Ctrl + A)​
    Puis appuyez sur la touche F9​
    Le format du champ est maintenant mis à jour​

  • Une autre méthode pour modifier un champ :
    Faites un clic droit sur un champ​
    Sélectionnez "Modification du champ" dans le menu contextuel​
    Cliquez sur le bouton "Code de champ", en bas à gauche dans la boite de dialogue .​
    Vous pouvez ensuite visualiser les propriétés du champ​

    Comme dans la premiere méthode ,vous pouvez modifier le format du champ​

    Cliquez sur OK pour valider​

  • Le format des champs :
    Si vous utilisez Office XP et ultérieur , il est parfois nécessaire de remettre en forme les champs car le résultat ne correspond pas au format des données saisies dans la base (par exemple les dates peuvent s'afficher au format mm/jj/aaaa)​
    (Par défaut Word utilise OLE DB pour la fusion , et les dates sont donc gérées en anglais)​
    Nous avons vu précédemment 2 méthodes pour accéder à la modification du format dans un champ​
    Ci-dessous quelques exemples de mise en forme à appliquer en fonction des types de données​
    Format Décimale​
    MERGEFIELD leChamp \# "#,00"​
    MERGEFIELD leChamp \# "### ### ###,##"​
    Format Date​
    MERGEFIELD laDate \@ "dd/MM/yyyy"​
    MERGEFIELD laDate \@ "dd dddd MMMM yyyy"​
    Format Monétaire​
    MERGEFIELD Montant \# "# ###,00 €"​
    Format numéro de Téléphone​
    MERGEFIELD \# "00' '00' '00' '00' '00"​

  • Comment faire pour ne pas utiliser la connection OLE DB par défaut .
    Menu Outils​
    Options​
    onglet Général​
    Coche l'option "Confirmation des conversions lors de l'ouverture"​
    Clique sur OK pour valider​
    Désormais, Quant vous sélectionnez une base de données , la boite de dialogue "Confirmer la source de données" s'affiche et vous permet de choisir votre mode de connection​
    Par exemple , sélectionnez "Feuille de calcul MS Excel via un DDE (*.xls)​
    Clique sur OK pour valider​
    Les différents types de connections disponibles et les problèmes possibles lors de l'utilisation des bases de données Excel :​
    Convertisseur Excel : Permet de choisir la feuille de calcul , mais il peut y avoir des problèmes avec les calculs et les formats numériques.​
    OLE : Permet de choisir la feuille de calcul et des plages de cellules, mais il peut y avoir des problèmes avec les calculs , les formats numériques et les formats Date.​
    DDE : Seule la 1ere feuille du classeur peut etre utilisée comme base de données .Les calcul , les formats numériques et les formats Date sont respectés . Utilisez ce type de connection lorsque vous avec des champs images (insertPicture) dans le document principal .​
    ODBC : Fonctionne uniquement avec des plages de cellules. Il peut y d'avoir des problèmes de formats numériques .​


  • Afficher les lettres types triées par ordre croissant du champ "Montant" :
    A l'étape 3 de l'assistant de publipostage, cliquez sur l'option "Modifier la liste des destinataires"​

    Cliquez sur l'entête "Montant" pour que le tri croissant soit appliqué​

    Cliquez sur le bouton OK pour valider​
    Désormais, l'aperçu du publipostage affiche les lettres par ordre croissant un champ "Montant"​

  • Description de la barre d'outils "Fusion et Publipostage" :

    1. Préparation du document principal​
    Ce bouton permet de choisir le type de document pour le publipostage (Lettre , Message electronique , Enveloppe …)​
    2. Ouvrir la source de données ( permet de choisir une base de données )​
    3. Fusion et publipostage : Destinataires​
    Permet d'afficher la boîte de dialogue pour trier et filtrer les destinataires​
    4. Insérer un bloc d'adresse .​
    5. Insérer une ligne de salutations .​
    6. Insérer les champs de fusion​
    La boite de dialogue liste tous les champs de la base de données. Sélectionnez un nom et cliquez sur le bouton "Insérez" .​
    7. Insérer un mot clé .​
    Les options du bouton sont décrites un peu plus loin dans cette page .​
    8. Mode publipostage .​
    Cliquez sur ce bouton pour visualiser le nom du champ.Recliquez sur le outon pour afficher la valeur de l'enregistrement .​
    9. Mettre les champs de fusion en surbrillance .​
    10. Faire correspondre les champs .​
    11. Propager les etiquettes .​
    12. Faire défiler les enregistrements dans le document principal .​
    13. Rechercher une entrée .​
    Cette option permet de rechercher un enregistrement à partir d'un mot clé. Il est possible de filtrer la recherche sur un champ spécifique .​
    Si une entrée est trouvée , l'enregistrement s'affiche dans le document principal .​
    Vous pouvez ensuite recliquer sur "Suivant" pour contrôler s'il existe un autre enregistrement répondant à la requète .​
    14. Vérifier la fusion​
    Cette option permet de simuler ou d'effectuer la fusion et de récupérer un compte rendu des erreurs .​
    15. Fusionner vers un autre document​
    16. Fusionner vers l'imprimante​
    Cette option permet d'imprimer tous les enregistrements , l'enregistrement actif ou une sélection triée par numéro d'index​
    17. Fusionner avec un message electronique​
    18. Fusionner avec une télécopie​

  • Description du bouton "insérer un mot clé" dans la boite de dialogue "Fusion et Publipostage"
    L'option Demander :​
    Permet de paramétrer une boite de dialogue qui va s'afficher au moment de la fusion et ainsi d'ajouter une information complémentaire dans chaque lettre.​
    La données saisie est affectée à un signet que vous avez préalablement créé.​
    "Invite" correspond à la description de la boite de dialogue.​
    Le texte par défaut est facultatif.​
    Si vous ne cochez pas l'option "Demander une seule fois" la boite de dialogue devra etre validée autant de fois qu'il y a d'enregistrements dans la fusion.​
    L'option Remplir :​
    Le principe est identique à l'option "Demander" , mais l'information est ajoutée à l'emplacement du champ "Remplir" (FILLIN)​
    L'option Si ...Alors ...Sinon …:​
    Permet d'insérer un texte conditionnel en fonction de la donnée contenue dans un autre champ​
    Par exemple, si vous basculez en mode de champ, vous obtenez : {IF 18 < 0 "A créditer" "A facturer"}​
    (18 est la valeur de l'enregistrement actif)​
    D'autres informations sur le site de microsoft, pour personnaliser les champs conditionnels :​
    http://office.microsoft.com/fr-fr/assistance/HP051876761036.aspx
    L'option Numero enregistrement de fusion :​
    Insère un champ pour afficher le numéro d'enregistrment dans le document (Equivalent du champ MERGEREC)​
    Le numéro d'enregistrement correspond à l'ordre dans la base de données. Le numéro peut donc ne pas être chronologique si vous avez trié ou filtré les enregistrements dans la fusion.​
    L'option Numéro séquence de fusion :​
    Contrairement à l'option précédente, les numéros sont attribués par ordre chronologique de fusion.​
    L'option Suivant :​
    Permet de fusionner l'enregistrement suivant sur la meme feuille (Sinon par défaut il y a toujours un saut de page entre chaque enregistrement)​
    L'option Suivant Si :​
    Il s'agit de la meme chose que l'option précédente, mais de façon conditionnelle .​
    Si vous basculez ensuite en mode de champ vous obtenez :{NEXTIF 1 = 5}​
    (1 est la valeur de l'enregistrement actif, = 5 est la condition définie)​
    L'option Définir Signet :​
    L'option Sauter l'enregistrement Si :​
    Permet d'enlever des enregistrements de façon conditionnelle .​
    Par exemple, ne pas afficher les enregistrements si le champ "leNom" est égal à "mimi"​

  • Utiliser les messages électroniques comme documents de publipostage :
    Cet exemple suppose d'avoir préalablement créé une base de données Excel , dont un des champs contient les adresses mail​

    A l'étape 1 de l'assistant , sélectionnez l'option "Message électronique"​
    Ensuite allez jusqu'à l'étape 3​
    Sélectionnez "Utilisez une liste existante"​

    Cliquez sur le bouton "Parcourir" pour lier la base de données Excel au document principal Word​
    Passez à l'étape 4 pour mettre en forme votre document de publipostage​
    Insérez les champs de fusion , saisissez votre texte dans le document …etc…​
    Passez à l'étape 5 pour visualiser l'aperçu de publipostage​
    Vous pouvez faire défiler les enregistrements pour visualiser le résultat. Utilisez le bouton "Exclure ce destinataire" pour enlever l'enregistrement actif.​
    A cette étape vous pouvez aussi effectuer un tri ou un filtre sur les destinataires​
    Dans ce cas cliquez sur le bouton "Modifier la liste des destinataires"​

    Vous pouvez par exemple filtrer les enregistrements dont le champ "Relance" contient "Oui"​

    Passez à l'étape 6 : Cliquez sur le bouton "Message électronique"​

    Dans la zone "A" , sélectionnez le champ contenant les adresses mail​
    Complétez la zone "Ligne Objet"​
    Sélectionnez le format des messages (le document de publipostage peut etre dans le corps du message ou placé en pièce jointe)​
    Cliquez sur OK pour lancer le publipostage.​

  • Utiliser la liste des contacts Outlook pour effectuer un publipostage :
    A l'étape 3 de l'assistant , choisissez l'option "Sélection à partir des contacts Outlook"​
    Ensuite cliquez sur le bouton "Choisir le dossier contacts"​
    Sélectionnez le dossier des contacts dans la boite de dialogue , puis cliquez sur le bouton OK pour valider​
    Pour le reste, la méthode de préparation du document principal reste similaire aux exemples précédents . Vous pouvez utiliser la liste des contatcts outlook pour envoyer des messages électroniques mais aussi pour créer des lettres , des enveloppes ou des étiquettes.​
    Si votre objectif est d'envoyer des mails : Lorsque vous aurez cliqué sur le bouton "Message électronique" à l'étape 6​
    sélectionnez le champ "Adresse_électronique" Dans la zone "A". Ce champ correspond aux Adresses de messagerie saisies dans la base des contacts Oulook.​

  • Imprimer un document de publipostage depuis Excel.
    Private Sub commandButton1_Click()​
    Dim docWord As Word.Document​
    Dim appWord As Word.Application​
    Application.screenUpdating = False​
    Set appWord = New Word.Application​
    appWord.Visible = False​
    Set docWord = appWord.Documents.Open(thisWorkbook.Path & "\dossier.doc")​
    With docWord.mailMerge​
    .Destination = wdSendToPrinter​
    .suppressBlankLines = True​
    With .dataSource​
    .firstRecord = wdDefaultFirstRecord​
    .lastRecord = wdDefaultLastRecord​
    End With​
    .Execute Pause:=False​
    End With​
    Application.screenUpdating = True​
    docWord.Close False​
    appWord.Quit​
    End Sub​

  • Envoyer un mailing en utilisant une macro Word et y ajouter une pièce jointe .
    Sub publipostageMailing_wordVBA_avecPieceJointe()​
    'michelxld le 03.03.2006​
    '​
    'Utilisez cette procédure apres avoir créé et mis en forme votre document principal.​
    'C'est la macro qui va boucler sur tous les enregistrements et envoyer les mails et y ajouter une pièce jointe .​
    'Les adresses mail sont dans le champ "champMail" de la base de données .​
    'Cet exemple ne prend pas en compte les filtres éventuels dans le publipostage .​
    '​
    'Necessite d'activer la reference Microsoft Outlook xx.x Object Library​
    '​
    Dim outApp As Outlook.Application​
    Dim oItem As Outlook.mailItem​
    Dim leSujet As String, leDestinataire As String​
    Dim i As Integer​
    Set outApp = createObject("Outlook.Application")​
    leSujet = "Essai de publipostage VBA avec pieces jointes"​
    'Afficher le 1er enregistrement du publipostage​
    thisDocument.mailMerge.dataSource.activeRecord = wdFirstRecord​
    'boucle sur tous les enregistrements de la base de données​
    For i = 1 To thisDocument.mailMerge.dataSource.recordCount​
    'récupération des adresses mail qui sont dans le champ "champMail"​
    leDestinataire = thisDocument.mailMerge.dataSource.dataFields("champMail").Value​
    Set oItem = outApp.createItem(olMailItem)​
    With oItem​
    .Subject = leSujet​
    .Body = thisDocument.Content 'insère le contenu du document dans le corps du message​
    .To = leDestinataire​
    'ajout d'un fichier attaché​
    .Attachments.Add "C:\maPieceJointe.txt"​
    .Send 'envoi du mail​
    End With​
    'pour passer à l'enregistrement suivant​
    thisDocument.mailMerge.dataSource.activeRecord = wdNextRecord​
    Set oItem = Nothing​
    Next i​
    Set outApp = Nothing​
    End Sub​
Si vous constatez des erreurs dans la page n'hesitez pas à m'en faire part .
Toutes vos idees sont les bienvenues .
Michel , Mise à jour le 14 Avril 2006
 
Dernière modification par un modérateur:

Statistiques des forums

Discussions
290 922
Messages
1 911 413
Membres
177 160
dernier inscrit
rabinaud
Haut Bas