Fusionner plusieurs pdf par une macro

Ben Becker

XLDnaute Nouveau
Bonjour à tous,

après plusieurs recherches infructueuses, je me tourne vers vous pour mon problème : je cherche à construire une macro qui créait plusieurs fichiers pdf (ca c'est bon) et qui ensuite les fusionnent dans un autre fichier pdf.
En effet, actuellement j'utilise le logiciel pdf split and merge pour effectuer ces fusions, mais il serait top qu'une macro fasse la conversion en pdf puis la fusion des pdf créés.

Voici ma macro qui créait les pdf :

Sub Creation_Pdf ()
Call Suivi_Developpement_1
Call Suivi_Developpement_2
End Sub

Sub Suivi_Developpement_1()
Dim objMessage As CDO.Message
Dim JobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String

sNomPDF = "Suivi développement _ 1 _ " & [AK1].Value & ".pdf"
sCheminPDF = "D:\documents\PDF\" & [AK1].Value & "\"
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

Set JobPDF = CreateObject("PDFCreator.clsPDFCreator")

With JobPDF
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sCheminPDF
.cOption("AutosaveFilename") = sNomPDF

.cOption("AutosaveFormat") = 0

.cClearCache
End With

Sheets("Analyse").Range("A90:A857").EntireRow.Hidden = True

Sheets(Array(2)).PrintOut copies:=1, ActivePrinter:="PDFCreator"

Do Until JobPDF.cCountOfPrintjobs = 1
DoEvents
Loop
JobPDF.cPrinterStop = False

Do Until JobPDF.cCountOfPrintjobs = 0
DoEvents
Loop
JobPDF.cClose
Set JobPDF = Nothing


Sheets("Analyse").Range("A90:A857").EntireRow.Hidden = False

End Sub

Sub Suivi_Developpement_2()
Dim objMessage As CDO.Message
Dim JobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String

sNomPDF = "Suivi développement _ 2 _ " & [AK1].Value & ".pdf"
sCheminPDF = "D:\documents\PDF\" & [AK1].Value & "\"
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

Set JobPDF = CreateObject("PDFCreator.clsPDFCreator")

With JobPDF
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sCheminPDF
.cOption("AutosaveFilename") = sNomPDF

.cOption("AutosaveFormat") = 0

.cClearCache
End With

Sheets("Analyse").Range("A64:A91").EntireRow.Hidden = True
Sheets("Analyse").Range("A127:A856").EntireRow.Hidden = True

Sheets(Array(2)).PrintOut copies:=1, ActivePrinter:="PDFCreator"

Do Until JobPDF.cCountOfPrintjobs = 1
DoEvents
Loop
JobPDF.cPrinterStop = False

Do Until JobPDF.cCountOfPrintjobs = 0
DoEvents
Loop
JobPDF.cClose
Set JobPDF = Nothing



Sheets("Analyse").Range("A64:A91").EntireRow.Hidden = False
Sheets("Analyse").Range("A127:A856").EntireRow.Hidden = False

End Sub

Merci par avance pour votre aide

Ben
 

Ben Becker

XLDnaute Nouveau
Re : Fusionner plusieurs pdf par une macro

Pour rajouter un élément à mon problème, j'ai trouvé un code Vb qui utilise le logiciel pdf Split and Merge. En revanche je ne vois pas comment l'insérer dans ma macro. Je vais quand même essayer, on ne sait jamais !
Public Sub testbat()

Dim iFileNo As Integer
iFileNo = FreeFile
Dim tempBatch As String

' Create a temporary batch file - the only way to run multiple commands in a DOS
' session without it resetting for the next command is to use a batch file..
'set the filename of the temporary batch file
tempBatch = "F:\Temp\_temp.bat"

' if the file exists, delete it
If Dir(tempBatch) <> "" Then
Kill (tempBatch)
End If

' recreate it now
Open tempBatch For Output As #iFileNo
' turn off screen echoing
Print #iFileNo, "@Echo Off"
Print #iFileNo, "cls"
Print #iFileNo, "Echo Running file..."
' change the directory for the DOS session
Print #iFileNo, "cd /D " & Chr(34) & "C:\Documents and Settings\Nashl\Desktop\pdfsam-1.0.3-out\bin" & Chr(34)
' run your other batch file
Print #iFileNo, "CALL run-console.bat -f F:\Temp\temp.pdf -o F:\Temp\ -s BURST split"
Close #iFileNo

' run the temporary batch file...
ChDir ("C:\Documents and Settings\Nashl\Desktop\pdfsam-1.0.3-out\bin")
Shell tempBatch, vbNormalFocus

End Sub
 

Ben Becker

XLDnaute Nouveau
Re : Fusionner plusieurs pdf par une macro

Bonjour le forum et kiki,

je te remercie pour ta réponse. J'ai consulté tes posts qui sont très intéressants et qui m'inspireront surement pour un autre projet. Sauf erreur de ma part, je n'ai pas trouvé de notion de fusion de plusieurs pdf. Je vais essayer d'avancer ce soir dessus.
 

kiki29

XLDnaute Barbatruc
Re : Fusionner plusieurs pdf par une macro

Salut, effectivement
Depuis la version 2007 Excel intègre en natif le format PDF et rend certaines solutions PDFCreator et Acrobat Distiller inutiles

je cherche à construire une macro qui créerait plusieurs fichiers pdf (ca c'est bon) et qui ensuite les fusionneraient dans un autre fichier pdf.

Voir ici pour la génération dans un seul fichier PDF de n feuilles sélectionnées dans un Classeur via un tableau Excel vers PDF avec Acrobat Distiller [FAQ] - Forum des professionnels en informatique

et toi tu veux fusionner des fichiers PDF déjà générés ?

Même si à partir du code du lien ( à adapter ) il est possible de générer un seul PDF à partir de N feuilles de X Classeurs
 
Dernière édition:

Ben Becker

XLDnaute Nouveau
Re : Fusionner plusieurs pdf par une macro

Salut Kiki,

je m'excuse par avance si par tes réponses je devrais trouver mon bonheur, mais je pense que la solution est ailleurs.

Imprimer plusieurs feuilles d'un classeur pour en faire un pdf, je peux le faire mais ce n'est pas ce que je cherche.
En effet j'imprime plusieurs fois la même feuille de mon classeur, je change juste ma plage d'impression (en masquant et démasquant des lignes différentes). C'est vraiment le fait que j'imprime toujours la même feuille de mon classeur qui me pose problème ici.

Merci beaucoup pour ton temps et tes réponses.

Ben
 

JNP

XLDnaute Barbatruc
Re : Fusionner plusieurs pdf par une macro

Bonjour le fil :),
Fusionner des PDF avec Acrobat Pro, pas de soucis. Après, je pense qu'il faut tout de même un programme bien spécifique pour le faire, mais as-tu regardé si ton soft avait rajouté des bibliothèques dans VBA :p ?
D'autre part, tu parles de plusieurs fois la même feuille avec des lignes masquées etc. Ne serait-il pas plus simple de copier les différentes configurations sur d'autres onglets et de faire un seul PDF à partir de ces onglets :rolleyes: ?
Bon courage :cool:
 

Discussions similaires