Publipostage Word en PDF avec base de données Excel
Résolu
Klimero44
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
J.WALLE Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
J.WALLE Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un publipostage Word avec une base de données Excel.
Le but est de générer autant de fichier PDF par page Word (en gros 500 pages de publipo à générer en 500 fichiers PDF).
Le but est d'envoyer par mail par destinataire un fichier PDF.
J'ai repris le code VBA :
Sub ExportPDF()
Dim NbPage As Integer
Application.ScreenUpdating = False
NbPage = ActiveDocument.Windows(1).Panes(1).Pages.Count 'Compte le nombre de page dans le document
'Dans cette section, modifier le paramètre "OutputFileName" pour changer le répertoire de sortie.
'Il est important de laisser la variable I dans le nom du fichier pour garder un numéro de chrono.
For i = 1 To NbPage
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
"C:\Users\xxx\Desktop\Publipostage\03122015\test\" & i & ".pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=i, To:=i, Item:= _
wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
Next
Application.ScreenUpdating = True
MsgBox "Export terminé"
End Sub
Cela fonctionne à merveille.
Seulement, il ressort 1.pdf, 2.pdf, etc....
Difficile de retrouver ses petits pour les envois PDF en PJ !
L'idée est d'intégrer à la place des chiffres le n°contrat + Nom du client (qu'on retrouve dans la base Excel)
Quelqu'un aurait une idée ?
Merci d'avance !
J'ai un publipostage Word avec une base de données Excel.
Le but est de générer autant de fichier PDF par page Word (en gros 500 pages de publipo à générer en 500 fichiers PDF).
Le but est d'envoyer par mail par destinataire un fichier PDF.
J'ai repris le code VBA :
Sub ExportPDF()
Dim NbPage As Integer
Application.ScreenUpdating = False
NbPage = ActiveDocument.Windows(1).Panes(1).Pages.Count 'Compte le nombre de page dans le document
'Dans cette section, modifier le paramètre "OutputFileName" pour changer le répertoire de sortie.
'Il est important de laisser la variable I dans le nom du fichier pour garder un numéro de chrono.
For i = 1 To NbPage
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
"C:\Users\xxx\Desktop\Publipostage\03122015\test\" & i & ".pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=i, To:=i, Item:= _
wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
Next
Application.ScreenUpdating = True
MsgBox "Export terminé"
End Sub
Cela fonctionne à merveille.
Seulement, il ressort 1.pdf, 2.pdf, etc....
Difficile de retrouver ses petits pour les envois PDF en PJ !
L'idée est d'intégrer à la place des chiffres le n°contrat + Nom du client (qu'on retrouve dans la base Excel)
Quelqu'un aurait une idée ?
Merci d'avance !
A voir également:
- Publipostage outlook avec pièce jointe pdf
- Publipostage pdf par mail - Meilleures réponses
- Enregistrer un publipostage en pdf en séparant chaque feuille - Meilleures réponses
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Publipostage mail avec PJ en pdf différente pour chaque mail - Forum Word
- Publipostage mail - Accueil - Word
- Pièce d'identité - Accueil - Services publics
- Save as pdf office 2007 - Télécharger - Bureautique
3 réponses
Bonjour,
Ce n'est pas très compliqué à condition que le texte qui va servir aux noms des documents soit toujours au même endroit. A partir de là, on compte les paragraphes, les mots, etc.
Voici un exemple de macro :
Cet exemple récupère le deuxième mot du premier paragraphe de chaque section. A toi de bien compter ! ;)
m@rina
Ce n'est pas très compliqué à condition que le texte qui va servir aux noms des documents soit toujours au même endroit. A partir de là, on compte les paragraphes, les mots, etc.
Voici un exemple de macro :
Sub exportpdf()
'macro écrite par m@rina
Dim nbpage As Integer
Dim nom As String
nbpage = ActiveDocument.Sections.Count
For i = 1 To nbpage
nom = ActiveDocument.Range.Sections(i).Range.Paragraphs(1).Range.Words(2)
ActiveDocument.ExportAsFixedFormat outputFileName:="M:\test\" & nom & ".pdf", _
exportFormat:=wdExportFormatPDF, Range:=wdExportFromTo, From:=i, To:=i
Next
MsgBox "Export terminé"
End Sub
Cet exemple récupère le deuxième mot du premier paragraphe de chaque section. A toi de bien compter ! ;)
m@rina
Grand merci à toi ! Bravo !
Je vais quand même continuer à potasser Visual Basic pour m'améliorer ! :-)