Enregistrez vos publipostages au format PDF

Dans un article précédent, nous avons vu comment réaliser des publipostages grâce à Word et Excel. Malheureusement, certaines fonctionnalités sont encore limitées : envoi direct par mail, enregistrement individuel des courriers.
Aujourd’hui, remédions à tout cela et découvrons comment enregistrer individuellement tous vos courriers publipostés.


 

Partons d’un publipostage classique

La base de départ est un publipostage comme nous l’avons fait la dernière fois. Nous créons une liste dans Excel puis nous l’intégrons à un courrier dans Word. Jusque-là, rien de nouveau.

Nous repartons de l’exemple utilisé la dernière fois. A ce courrier a été ajoutée la procédure VBA SavePubliAsPDF.
Lorsqu’on exécute cette procédure, on choisit un dossier pour l’enregistrement des courriers.

Publipostage PDF selection dossier enregistrement

Ensuite Word s’occupe du reste. En fin de procédure, il nous précise combien de fichiers ont été enregistrés.

Publipostage PDF message fin traitement
 

Réutiliser la procédure

Téléchargement du modèle

Je vous propose de télécharger les deux fichiers Word et Excel, zippés ensemble. Le fichier Word est lié au fichier Excel qui doit se trouver dans le même dossier. Lorsque vous ouvrez le document, validez le message suivant.

Publipostage PDF validation ouverture Word

Pour le réutiliser, vous avez 2 possibilités :

  • Modifier les deux fichiers (Excel pour la liste et les intitulés des champs de fusion, Word pour le courrier) et conserver le lien entre eux
  • Copier la procédure pour l’enregistrement dans votre publipostage

 

Copie de la procédure

Je vous conseille d’opter pour la deuxième solution qui sera plus rapide. Réalisez votre publipostage et procédez ainsi.

Appuyez sur Alt+F11 pour ouvrir Visual Basic Editor.
Dans l’explorateur de projets, en haut à gauche de la fenêtre, sélectionnez votre courrier, ici : Mon publipostage.

Publipostage PDF projet VBA

Puis cliquez sur Insertion > Module.

Publipostage PDF insertion module VBA

Dans la fenêtre vide qui apparaît, collez le texte suivant.

Publipostage PDF module vide

Sub SavePubliAsPDF()
Dim LastRec As Integer
Dim Path As String, Id As String

Application.ScreenUpdating = False

'Choix du dossier d'enregistrement des fichiers
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Sélectionnez un dossier où enregistrer vos fichiers"
.Show
If Not (.SelectedItems.Count = 0) Then
Path = .SelectedItems(1)
Else
Exit Sub
End If
End With

'Décompte du nombre d'enregistrements dans le publipostage
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
LastRec = ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord

'Enregistrement des fichiers
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False
For i = 1 To LastRec Step 1
Id = ActiveDocument.MailMerge.DataSource.DataFields(1).Value
ActiveDocument.SaveAs2 Path & "\Courrier " & Id & ".pdf", wdFormatPDF
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Next i

MsgBox "L'enregistrement de votre publipostage est terminé." & vbLf & vbLf & LastRec & " fichiers ont été enregistrés dans le dossier : " & Path, vbOKOnly + vbInformation, "Enregistrement du publipostage terminé"

Application.ScreenUpdating = True
End Sub

 

Ce code figure également dans le Module1 du document Courrier publipostage PDF. Vous pouvez le copier depuis cet endroit si vous préférez.

Publipostage PDF copie code procedure

Si l’explorateur de projets n’est pas affiché, cliquez sur Affichage > Explorateur de projets. La liste de tous les documents Word ouverts y figure.

Publipostage PDF afficher explorateur projets

Sauvegardez votre courrier en utilisant le format .docm, autorisant les macros.

Publipostage PDF enregistrement publipostage

Retrouvez toutes ces explications dans notre tutoriel pour débuter avec VBA. Il est composé de 5 parties et les exemples sont réalisés avec Excel. VBA pour Word fonctionne de façon similaire, les conseils restent donc valables dans le traitement de texte.
Consultez les pages suivantes :

 

Lancement de la procédure

Pour enregistrer vos courriers publipostés, vous n’avez plus qu’à exécuter la procédure. Cliquez dans le ruban Affichage > Macros ou appuyez sur Alt+F8.

Publipostage PDF afficher macros

Sélectionnez SavePubliAsPDF et cliquez sur Exécuter.

Publipostage PDF execution procedure

A votre tour, choisissez votre dossier et laissez Word faire le travail.

 

Modification des paramètres d’enregistrement

Un identifiant est affecté à chaque destinataire. Par défaut, il est pris dans le 1er champ du fichier Excel. Il est ensuite utilisé dans le nom pour l’enregistrement du fichier correspondant.
Changez le numéro de la colonne et le nom des fichiers comme vous le souhaitez.

Publipostage PDF modification code enregistrement fichiers

Grâce à ce tutoriel, vous pouvez conserver individuellement chacun des fichiers et dans un format non modifiable. Cela peut être pratique si vous souhaitez publiposter des documents puis les envoyer par mail par exemple.
Pour un envoi personnalisé de ces fichiers PDF, consultez les pages ci-dessous. Vous y trouverez un fichier à télécharger pour envoyer vos mailings avec pièce jointe ainsi que des explications détaillées.

A travers ces différents articles, nous voyons qu'utilisés ensemble, les composants de la suite Office permettent de réaliser des traitements professionnels tout en nous faisant gagner un temps considérable.

Si vous avez le moindre doute quant à l'utilisation des fichiers, n'hésitez pas à laisser un commentaire ci-dessous.

 

Abonnez-vous à la newsletter

Illustration couverture ebook 100 trucs et astuces pour Excel-ler au travail

Et recevez gratuitement l'ebook 100 trucs et astuces pour Excel-ler au travail (5€ sur Amazon)

Votre adresse mail ne sera pas communiquée et vous pourrez vous désabonner à tout moment.

Taggé , , .Mettre en favori le Permaliens.

4 réponses à Enregistrez vos publipostages au format PDF

  1. antoine dit :

    Bonjour,
    Au moment de l’exécution un message d’erreur s’affiche : erreur d’exécution 5853 paramètre invalide. Lorsque je clique sur débogage c’est cette ligne qui est pointé du doigt : ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
    Y a t-il une ligne de code à modifier? Avez vous un idée de ce qui peut bloquer? Je vous remercie. Votre tuto est le meilleur que j’ai pu trouver parmi ceux présent sur ce thème.

  2. Samantha dit :

    Bonjour
    il ne m’enregistre qu’un seul document alors que le message affiche 68

    • joonaathan dit :

      Bonjour et MERCI pour ce tutoriel.
      comme Samantha, je n’obtiens qu’un document, avec les valeurs de la dernière ligne excel. Je suis en train d’essayer de m’en dépatouiller, mais il faut savoir assumer ses limites !!! 🙂
      je lirai votre réponse avec le plus grand intérêt. Joo

  3. Hogewine dit :

    Bonjour,

    Votre solution simple et élégante m’a beaucoup aidé, je vous en remercie !

    Quentin

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.