Les sujets abordés dans cette page Le Publipostage Word / Excel. |
Généralités Excel - page 1
Ce qui touche aux userforms - page 2
Piloter d'autres applications depuis Excel - page 3
Fonctions, événements, dates et calendriers - page 4
Formules, audits, répertoires et fichiers - page 5
Doublons, tris et filtres, variables, fichiers fermés, Access - page 6
Commentaires, gestion des erreurs, aide en ligne, recherches, tableaux, pages html, PC et système d'exploitation - page 7
Les objets dans le feuille, liens hypertextes, formats, Visual basic editor, chaines de caractères, modules de classe- page 8
Les Tableaux et graphiques Croisés Dynamiques, fichiers XML - page 9
Le Publipostage Word / Excel - page 10
Librairie Windows Image Acquisition Automation Library v2.0 - page 11
Ce qui touche aux userforms - page 2
Piloter d'autres applications depuis Excel - page 3
Fonctions, événements, dates et calendriers - page 4
Formules, audits, répertoires et fichiers - page 5
Doublons, tris et filtres, variables, fichiers fermés, Access - page 6
Commentaires, gestion des erreurs, aide en ligne, recherches, tableaux, pages html, PC et système d'exploitation - page 7
Les objets dans le feuille, liens hypertextes, formats, Visual basic editor, chaines de caractères, modules de classe- page 8
Les Tableaux et graphiques Croisés Dynamiques, fichiers XML - page 9
Le Publipostage Word / Excel - page 10
Librairie Windows Image Acquisition Automation Library v2.0 - page 11
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 classeurOuvrez un nouveau document WordMenu OutilsLettres et PublipostageAssistant de Fusion et PublipostageLe volet Office apparaît à droite de l'écran. Suivez les différentes étapes proposées par l'assistant1ere 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éesSé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 OutlookL'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 à fusionnerChaque feuille (ou plage nommée) est considérée comme une table .
Si le classeur contient plusieurs onglets, sélectionnez celui qui vous interesseCliquez sur OK pour validerRemarque: Si vous renommez ou déplacez ultérieurement la base de données, vous devrez recréer le lien dans le document principalLa 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 OKEnsuite vous pouvez mettre en page votre document WordPour 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'écranMenu AffichageBarre d'outilsSélectionnez l'option "Fusion et Publipostage"La boite de dialogue suivante affiche la liste des champs contenus dans la base de données ExcelChoisissez 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 WordAllez jusqu'à la 5eme étape de l'assistant pour visualiser le résultatL'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 contextuelLe 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 F9Le format du champ est maintenant mis à jour
- Une autre méthode pour modifier un champ :
Faites un clic droit sur un champSélectionnez "Modification du champ" dans le menu contextuelCliquez 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 champCi-dessous quelques exemples de mise en forme à appliquer en fonction des types de donnéesFormat DécimaleMERGEFIELD leChamp \# "#,00"MERGEFIELD leChamp \# "### ### ###,##"Format DateMERGEFIELD laDate \@ "dd/MM/yyyy"MERGEFIELD laDate \@ "dd dddd MMMM yyyy"Format MonétaireMERGEFIELD Montant \# "# ###,00 €"Format numéro de TéléphoneMERGEFIELD \# "00' '00' '00' '00' '00"
- Comment faire pour ne pas utiliser la connection OLE DB par défaut .
Menu OutilsOptionsonglet GénéralCoche l'option "Confirmation des conversions lors de l'ouverture"Clique sur OK pour validerDé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 connectionPar exemple , sélectionnez "Feuille de calcul MS Excel via un DDE (*.xls)Clique sur OK pour validerLes 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 .
- Les ressources Microsoft :
Modification du comportement des champs après l'installation d'une mise à jour WordLes champs INCLUDETEXT ou DATABASE ne sont pas mis à jour correctement dans les documents principauxInsérer un champ imageLe lien sur le site de MicrosoftProblème d'affichage d'une image dont le chemin est stocké dans un champ d'une base de donnéesCréer un publipostage en utilisant Visual BasicCe lien n'existe plusUtiliser les evenements de publipostageUtiliser les champs conditionnels IFLe lien sur le site de MicrosoftSauvegarder toutes les sections de publipostage en fichiers indépendantsUtiliser le publipostage vers un Fax , en utilisant Word2002Informations sur l'affichage du message d'alerte SQL lors de l'ouverture du document principal Word("L'ouverture de ce document exécutera la commande SQL suivante : ... ")
- 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 validerDé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 principalCe 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 : DestinatairesPermet d'afficher la boîte de dialogue pour trier et filtrer les destinataires4. Insérer un bloc d'adresse .5. Insérer une ligne de salutations .6. Insérer les champs de fusionLa 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 fusionCette option permet de simuler ou d'effectuer la fusion et de récupérer un compte rendu des erreurs .15. Fusionner vers un autre document16. Fusionner vers l'imprimanteCette option permet d'imprimer tous les enregistrements , l'enregistrement actif ou une sélection triée par numéro d'index17. Fusionner avec un message electronique18. 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 champPar 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.aspxL'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 3Sélectionnez "Utilisez une liste existante"
Cliquez sur le bouton "Parcourir" pour lier la base de données Excel au document principal WordPassez à l'étape 4 pour mettre en forme votre document de publipostageInsérez les champs de fusion , saisissez votre texte dans le document …etc…Passez à l'étape 5 pour visualiser l'aperçu de publipostageVous 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 destinatairesDans 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 mailComplé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 validerPour 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 6sé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.DocumentDim appWord As Word.ApplicationApplication.screenUpdating = FalseSet appWord = New Word.ApplicationappWord.Visible = FalseSet docWord = appWord.Documents.Open(thisWorkbook.Path & "\dossier.doc")With docWord.mailMerge.Destination = wdSendToPrinter.suppressBlankLines = TrueWith .dataSource.firstRecord = wdDefaultFirstRecord.lastRecord = wdDefaultLastRecordEnd With.Execute Pause:=FalseEnd WithApplication.screenUpdating = TruedocWord.Close FalseappWord.QuitEnd 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.ApplicationDim oItem As Outlook.mailItemDim leSujet As String, leDestinataire As StringDim i As IntegerSet outApp = createObject("Outlook.Application")leSujet = "Essai de publipostage VBA avec pieces jointes"'Afficher le 1er enregistrement du publipostagethisDocument.mailMerge.dataSource.activeRecord = wdFirstRecord'boucle sur tous les enregistrements de la base de donnéesFor 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").ValueSet 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 mailEnd With'pour passer à l'enregistrement suivantthisDocument.mailMerge.dataSource.activeRecord = wdNextRecordSet oItem = NothingNext iSet outApp = NothingEnd Sub
Toutes vos idees sont les bienvenues .
Michel , Mise à jour le 14 Avril 2006
Dernière modification par un modérateur: