Boucle et fichier pdf
bonjour a tous ,
j'ai récupéré sur un autre forum un code source permettant de fusion des fichiers pdf via une macro excel
ce code fonctionne nickel mais j'aurais besoins d'adaptation
voici le code complet et original
Option Explicit
Sub Fusion_PDFs()
Dim oPDDoc1 As Object
Dim oPDDoc2 As Object
Dim oPDDoc3 As Object
Dim Num As Long
Set oPDDoc1 = CreateObject("AcroExch.PDDoc")
Set oPDDoc2 = CreateObject("AcroExch.PDDoc")
Set oPDDoc3 = CreateObject("AcroExch.PDDoc")
oPDDoc1.Open (ThisWorkbook.Path & "\" & "1.pdf")
oPDDoc2.Open (ThisWorkbook.Path & "\" & "2.pdf")
oPDDoc3.Open (ThisWorkbook.Path & "\" & "3.pdf")
' Pour connaitre le nombre de pages
' Num = oPDDoc1.GetNumPages()
' Paramètres :
' 1 Page du document en cours après laquelle l'insertion sera faite. La 1ere page est 0.
' 2 Document contenant les pages à insérer.
' 3 La 1ere page à être insérée dans le document en cours à partir du Document contenant les pages à insérer.
' 4 Le nombre de pages à insérer.
' 5 Si nombre > 0 les bookmarks sont copiés, si 0 ils ne le sont pas.
oPDDoc1.InsertPages 0, oPDDoc2, 0, 1, 0
oPDDoc1.InsertPages 1, oPDDoc3, 0, 1, 0
oPDDoc1.Save 1, ThisWorkbook.Path & "\" & "Fusion.pdf"
oPDDoc3.Close
oPDDoc2.Close
oPDDoc1.Close
Set oPDDoc3 = Nothing
Set oPDDoc2 = Nothing
Set oPDDoc1 = Nothing
End Suben effet dans mon cas le nombre de fichier pdf varie de 1 a 80
je me doute qu'il faudrait passer par une boucle mais je n'arrive pas a la coder proprement
voici le code que j'ai tenté sans succés
Sub Fusion_PDFs()
Dim oPDDoc1 As Object
Dim oPDDoc2 As Object
Dim oPDDoc3 As Object
Dim Num As Long
Set oPDDoc1 = CreateObject("AcroExch.PDDoc")
Set oPDDoc2 = CreateObject("AcroExch.PDDoc")
Set oPDDoc3 = CreateObject("AcroExch.PDDoc")
i = 27
j = 1
Do Until Sheets("Rappel 1").Range("c" & i) = Empty
oPDDoc = "oPDDoc" & j
oPDDoc.Open (ThisWorkbook.Path & "\" & "1.pdf")
j = j + 1
i = i + 1
Loopse code s'arrete par une erreur d'execution 424 avec comme remarque " Objet requi"
si quelqu'un a un piste d'avance merci
Bonjour Zoulouseb
Petite question, ce code est opérationnel pour les gens qui ont Adobe Acrobat ... est-ce le cas !?
A+
oui cela marche nickel
bien à toi
Re,
Comme je n'ai pas Distiller, essaye quand même ce code
Sub Fusion_PDFs()
Dim oPDDoc1 As Object
Dim oPDDoc As Object
Dim Ind As Integer
Set oPDDoc1 = CreateObject("AcroExch.PDDoc")
oPDDoc1.Open (ThisWorkbook.Path & "\" & "1.pdf")
For Ind = 2 To 80
Set oPDDoc = CreateObject("AcroExch.PDDoc")
' En cas d'erreur on saute les 2 lignes ci-dessous
On Error GoTo Suite
oPDDoc.Open (ThisWorkbook.Path & "\" & Ind & ".pdf")
' Insérer la page Ind-1
oPDDoc1.InsertPages Ind - 1, oPDDoc, 0, 1, 0
Suite:
' Effacer la variable oobjet
Set oPDDoc = Nothing
Next Ind
oPDDoc1.Save 1, ThisWorkbook.Path & "\" & "Fusion.pdf"
oPDDoc1.Close
oPDDoc.Close
Set oPDDoc1 = Nothing
Set oPDDoc = Nothing
End SubA+
un grand merci a toi
j'avais trouvé une solution tres similaire hier soir
et j'ai oublié de marquéne résolé
je pensais que tu posais cette question pour ton utilisation personnelle
désolé que tu te sois dérangé mais merci quand meme
je marque de ce pas le sujet en résolu
et je valide ta solution qui est aussi bonne que celle que l'on ma proposé
merci à toi s