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

VBA Word Discussion :

Publipostage - imprimer 1 pdf par pages


Sujet :

VBA Word

  1. #1
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut Publipostage - imprimer 1 pdf par pages
    Bonjour à tous,

    J'ai une base de données Excel qui me sert à la création d'un publipostage.
    Une fois le publipostage exécuté, je souhaite imprimer chaque page dans un pdf.

    En faisant des recherches, je penses que la seule solution est de faire une routine VBA.
    J'ai donc écrit le code suivant :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub export_N_pdf()
     
      Dim objMailMerge As MailMerge
      Dim objDataSource As MailMergeDataSource
      Dim i As Integer, nbRecord As Integer
      Dim path As String, fileName As String
     
        Set objMailMerge = ThisDocument.MailMerge
        Set objDataSource = objMailMerge.DataSource
        path = "***Mon Chemin***"
        nbRecord = objMailMerge.DataSource.RecordCount
     
        For i = 1 To nbRecord
          objDataSource.FirstRecord = i
          objDataSource.LastRecord = i
          objDataSource.ActiveRecord = i
          objMailMerge.Destination = wdSendToNewDocument
          fileName = "Attestation_" & objDataSource.DataFields("IDENTIFIANT_PEE")
          objMailMerge.Execute
     
          ActiveDocument.ExportAsFixedFormat OutputFileName:=path & fileName & ".pdf", ExportFormat:=wdExportFormatPDF
          ActiveDocument.Close SaveChanges:=False
        Next i
     
      Set objMailMerge = Nothing
      Set objDataSource = Nothing
    End Sub
    Jusque ici tout va bien, j'ai testé sur base de 10 lignes et ça fonctionne.

    Par contre pour chaque ligne, un nouveau word est ouvert, enregistrer en pdf et fermé. Cela prend un peu de temps.
    Ma base réelle fait 900 lignes, est-il possible de faire la même chose sans devoir créer un nouveau word temporairement ? J'ai peur quand lançant sur toute la base je rencontre un problème.

    Qu'en pensez vous ?
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  2. #2
    Membre éclairé Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Il faudrait cette ligne au début de ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    et celle-ci à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True
    Ça améliorerait la performance déjà de beaucoup.

    Mais quand tu dis que ça ouvre Word, tu veux dire qu'une nouvelle instance de Word s'ouvre à chaque fois? Et si oui, elle ne se referme pas ensuite?

    Souriane
    __________________________________
    Une question bien posée est à moitié résolue!

    Merci de ne pas oublier de mettre RÉSOLU quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

Discussions similaires

  1. imprimer un pdf sur page web
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/02/2010, 09h03
  2. [XL-2000] Ouvrir et imprimer un pdf par macro
    Par lagondenoumea dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/12/2009, 05h57
  3. Imprimer 20 enregistrements par page
    Par NABIL74 dans le forum QuickReport
    Réponses: 2
    Dernier message: 09/06/2009, 10h12
  4. Réponses: 3
    Dernier message: 29/01/2009, 10h59
  5. [Etat]Imprimer un enregistrement par page
    Par The_Super_Steph dans le forum IHM
    Réponses: 6
    Dernier message: 24/05/2007, 08h59

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