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 Sub

en 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
Loop

se 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 Sub

A+

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

Rechercher des sujets similaires à "boucle fichier pdf"