Le publipostage Word-Excel

SilkyRoad

Ce document décrit la fonction de publipostage Word. Vous y trouverez des informations sur les principales options disponibles.

Les exemples proposés ont été testés avec Office XP.

- Titre : Le publipostage Word-Excel

- Auteur : SilkyRoad

- Parution : 5 septembre 2006

- Mise à jour : 2 juillet 2007

- Licence : Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.

Sommaire

- I. Introduction

- II. Créer un document de publipostage

- II-A. La base de données

- II-B. 1ere étape: Sélectionner le type de document

- II-C. 2eme étape: Sélectionner le type de document de base

- II-D. 3eme à 5eme étape: Sélectionner la base de données et appliquer une mise en page

- II-E. L'étape 6: Fusionner

- III. Le format des champs

- III-A. Informations sur la mise en forme

- III-B. 1ere méthode pour modifier un champ

- III-C. 2eme méthode pour modifier un champ

- IV. Ne pas utiliser la connexion OLE DB par défaut

- V. Afficher les lettres types triées par ordre croissant

- VI. Description de la barre d'outils "Fusion et Publipostage"

- VII. Description du bouton "insérer un mot clé"

- VIII. Utiliser les messages électroniques pour le publipostage

- IX. Utiliser la liste des contacts Outlook pour le publipostage

- X. Automatiser les tâches de publipostage

- XI. Les ressources Microsoft

- XII. Téléchargement

I - Introduction

Le publipostage (aussi appelé fusion ou mailing) permet d'envoyer un courrier à un ensemble de destinataires. Le publipostage utilise un modèle (le document principal Word) et une base de données constituée de champs (Nom, Description, Date, ...toute information de votre choix...) et d'enregistrements (La liste des destinataires).
La technique consiste à fusionner le document Word avec chacun des enregistrements.
La destination de la fusion peut être une lettre, une enveloppe, une étiquette, un fichier ou un message électronique.

II - Créer un document de publipostage

Ce chapitre décrit les étapes nécessaires à la mise en place d'une fusion. La description est basée sur le pas à pas de l'assistant de publipostage Word, complétée par des commentaires personnels.

II-A - La base de données

Ce tutoriel utilise un classeur Excel comme base de données mais il est aussi possible d'utiliser un tableau Word ou une table Access.

Il est important de bien structurer la base de données.

Lorsque vous créez le nom des champs, respectez les conseils suivants:
Nom le plus court possible
Pas d'espace
Pas d'accent
Pas de caractères spéciaux

Evitez les vides entre les différentes colonnes.
Evitez les lignes vides entre les différent enregistrements.

Quand la base de données Excel est créée, sauvegardez et fermez votre classeur.

II-B - 1ere étape: Sélectionner le type de document

Ouvrez un nouveau document Word
Utilisez le Menu Outils
Sélectionnez l'option "Lettres et Publipostage"
Puis "Assistant de Fusion et Publipostage"
Le volet Office apparaît à droite de l'écran. Suivez les différentes étapes proposées par l'assistant.

Sélectionnez le type de document (par exemple "Lettres") dans la liste de choix.

II-C - 2eme étape: Sélectionner le type de document de base

Sélectionnez l'option "Utiliser le document actuel" pour que le fichier Word actif devienne le document principal de fusion.

II-D - 3eme à 5eme étape: Sélectionner la base de données et appliquer une mise en page

Sélectionnez l'option "Utilisation d'une liste existante", puis cliquez sur le bouton 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 après que vous ayez saisi vos données.

Recherchez et sélectionnez la source de données (le classeur Excel) contenant les informations à fusionner.

La liste des tables s'affiche dans une nouvelle boîte de dialogue.
Chaque feuille (ou plage nommée) est considérée comme une table.
Consultez le chapitre IV pour obtenir plus de détails sur les types de connexion.

Si le classeur contient plusieurs onglets, sélectionnez celui qui vous interesse.
Cliquez sur OK pour valider.

Si vous renommez ou déplacez ultérieurement la base de données, vous devrez recréer le lien dans le document principal.

La boîte de dialogue suivante permet de trier et filtrer les destinataires.
Chaque colonne (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.

Vous pouvez mettre en page votre document Word.
Préparez le texte que vous souhaitez envoyer. Vous ajouterez ensuite des champs qui permettront d'afficher les informations contenues dans la base de données.
Pour insérer un champ dans le document Word, cliquez sur le bouton "Insérez les champs de fusion", dans la barre de menu "Fusion et Publipostage".

Si la barre de menu "Fusion et Publipostage n'apparaît pas à l'écran:
Utilisez le Menu Affichage
Sélectionnez l'option "Barre d'outils"
Sélectionnez "Fusion et Publipostage"

La fenêtre 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 "Insérer".
Puis sur le bouton "Fermer"

Le champ est inséré dans le document Word à l'emplacement du curseur.
Allez jusqu'à la 5eme étape de l'assistant pour visualiser le résultat.

L'assistant propose un outil pour faire défiler les enregistrements 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 premières étapes de l'assistant doivent être préalablement réalisées,
Puis utilisez le Menu Insertion.
Sélectionnez l'option "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.

II-E - L'étape 6: Fusionner

La préparation est terminée. Vous pouvez lancer la fusion.

Remarque:
Pour ne pas gaspiller du papier inutilement, utilisez l'aperçu (étape 5 de l'assistant) pour vérifier que le résultat correspond à votre attente. Revenez sur l'étape 4 pour modifier votre document si nécessaire.

Ensuite, cliquez sur le bouton "Imprimer".

Vous pouvez spécifier l'impression de tout ou partie des enregistrements lors de cette dernière étape.

III - Le format des champs

III-A - Informations sur la mise en forme

Si vous utilisez Office XP ou une version ultérieure, il est parfois nécessaire de remettre en forme les champs car le résultat ne correspond pas aux données contenues dans la base: Par exemple les dates qui s'affichent au format MM/JJ/AAAA au lieu de JJ/MM/AAAA.
Par défaut, Word utilise la connexion OLE DB pour la fusion, et les dates sont donc gérées en anglais.

Vous devrez modifier manuellement tous les champs qui posent problème.
Ci-dessous quelques exemples de mise en forme à appliquer en fonction des types de données.

Format Décimal:
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"

Plus d'informations sur le site Microsoft

III-B - 1ere méthode pour modifier un champ

Dans le document Word, faites un clic droit sur un des champs afin d'afficher le menu contextuel.

Sélectionnez "Basculer les codes de champs".
Le résultat est remplacé par les propriétés du champ.

Vous pouvez modifier le format directement dans le champ. Un exemple pour modifier le format Date:

Ensuite, pour revenir en mode normal, refaites un clic droit et sélectionnez l'option "Basculer les codes de champs".

La mise à jour n'est pas effectuée automatiquement. Vous devez l'activer en utilisant la procédure suivante:
Menu Edition / Sélectionnez tout (Ctrl + A)
Puis appuyez sur la touche F9
Le format du champ est maintenant mis à jour.

III-C - 2eme 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 pour la premiere méthode, vous pouvez modifier le format du champ.

Cliquez sur OK pour valider.

IV - Ne pas utiliser la connexion OLE DB par défaut

Par défaut, Word utilise la connexion OLE DB pour la fusion.
La procédure suivante modifie les paramètres pour que le choix du mode de connexion soit possible lors de l'ouverture.

Utilisez le Menu Outils.
Sélectionnez "Options"
puis l'onglet "Général"
Cochez l'option "Confirmation des conversions lors de l'ouverture".
Cliquez sur OK pour valider.

Désormais, lorsque 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 connexion.
Voici une description des différents types de connexions 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 calculs, les formats numériques et les formats Date sont respectés. Utilisez ce type de connexion lorsque vous souhaitez utiliser des champs images (insertPicture).

ODBC:
Fonctionne uniquement avec des plages de cellules. Il peut y d'avoir des problèmes de formats numériques.

V - Afficher les lettres types triées par ordre croissant

L'outil de publipostage Word dispose d'une option de tri sur chaque champ de la base de données, permettant ainsi de définir l'ordre des lettres.
A l'étape 3 de l'assistant, cliquez sur l'option "Modifier la liste des destinataires".

Cliquez par exemple 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 du champ "Montant".

VI - 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 électronique, 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 boîte de dialogue liste tous les champs de la base de données. Sélectionnez un nom dans la liste et cliquez sur le bouton "Insérez". Le champ est positionné à l'emplacement du curseur.

7. Insérer un mot clé:
Les options du bouton sont décrites en détail dans le chapitre VII.

8. Mode publipostage:
Cliquez sur ce bouton pour visualiser le nom du champ dans la lettre type. Recliquez sur le bouton pour afficher la valeur de l'enregistrement.

9. Mettre les champs de fusion en surbrillance.

10. Faire correspondre les champs.

11. Propager les étiquettes.

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 le bouton"Suivant" afin de 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 filtrée par numéro d'index.

17. Fusionner avec un message electronique: Consultez l'étape 6 du chapitre VIII.

18. Fusionner avec une télécopie:
Consultez le chapitre XII (Les ressources Microsoft) pour plus de détails.

VII - Description du bouton "insérer un mot clé"

L'option Demander:
Permet de paramétrer une boîte de dialogue qui va s'afficher au moment de la fusion. Vous pourrez ainsi ajouter une information complémentaire dans chaque lettre, à l'emplacement d'un signet que vous aurez 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 boîte de dialogue devra être 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 Microsoft pour personnaliser les champs conditionnels

L'option Numéro 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 (Par défaut il y a toujours un saut de page entre chaque enregistrement).

L'option Suivant Si:
Il s'agit de la même 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:
Permet d'insérer un signet à l'emplacement du curseur.

L'option Sauter l'enregistrement Si:
Permet d'enlever des enregistrements en appliquant un filtre.
Par exemple, ne pas afficher les enregistrements si le champ "leNom" est égal à "mimi".

VIII - Utiliser les messages électroniques pour le publipostage

Cela 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" si vous souhaitez 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 être inséré dans le corps du message ou placé en pièce jointe.
Cliquez sur OK pour lancer le publipostage.

IX - Utiliser la liste des contacts Outlook pour le 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.

X - Automatiser les tâches de publipostage

Il est possible d'automatiser le publipostage en pilotant la fusion par programmation (VB et VBA). Lorsque la mise en page du document est figée, et si la tâche de publipostage doit être régulièrement exécutée, vous pouvez créer une procédure que se chargera de lancer les impressions.

Cet exemple ouvre le document principal de publipostage Word depuis Excel. La procédure lance ensuite l'impression pour l'ensemble des enregistrements.

Vba

Private Sub commandButton1_Click()
'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
Dim docWord As Word.Document
Dim appWord As Word.Application
Dim NomBase As String

NomBase = "C:\dossier\labase.xls"

Application.ScreenUpdating = False
Set appWord = New Word.Application
appWord.Visible = True
'Ouverture du document principal Word
Set docWord = appWord.Documents.Open("C:\leDocument.doc")

'fonctionnalité de publipostage pour le document spécifié
With docWord.mailMerge
'Ouvre la base de données
.OpenDataSource Name:= NomBase, _
Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & NomBase & "; ReadOnly=True;", _
SQLStatement:="SELECT * FROM [Feuil1$]"
'Spécifie la fusion vers l'imprimante
.Destination = wdSendToPrinter
.suppressBlankLines = True
'Prend en compte l'ensemble des enregistrements
With .DataSource
.firstRecord = wdDefaultFirstRecord
.lastRecord = wdDefaultLastRecord
End With
'Exécute l'opération de publipostage
.Execute Pause:=False
End With

Application.ScreenUpdating = True

'Fermeture du document Word
docWord.Close False
appWord.Quit
End Sub

Consultez aussi la source de Xo pour créer une liste de publipostage, à partir de Word et d'un fichier texte.

XI - Les ressources Microsoft

Modification du comportement des champs après l'installation d'une mise à jour Word.

Mise à jour des champs INCLUDETEXT et DATABASE

Mise à jour des champs INCLUDETEXT et DATABASE après un déplacement

Insérer un champ image

Problème pour afficher une image dont le chemin est stocké dans la base de données

Réaliser un publipostage en utilisant Visual Basic

Réaliser un publipostage en utilisant Visual Basic

Utiliser les évènements de publipostage

Utiliser les champs conditionnels IF

Automatiser la sauvegarde des sections de publipostage en fichiers indépendants

Effectuer un publipostage vers une télécopie

Informations sur l'affichage du message d'alerte SQL lors de l'ouverture du document principal Word

XII - Téléchargement