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

Macros et VBA Excel Discussion :

fusion de plusieurs PDF sous Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut fusion de plusieurs PDF sous Excel
    bonjour,

    je souhaite fusionner 2 PDF sous VBA
    dans mon fichier excel, j'ai des onglets qui me permettent de créer un PDF, je souhaite rajouter à ce PDF un autre qui provient de SAS.
    pour cela j'ai utilisé ce code

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Option Private Module              ' les variables ne sont accessibles qu'au sein de ce projet
     
    Public sNomFichierPDF As String
     
    Sub PDF()
     
    Application.ScreenUpdating = False
    W_NOM_CLASSEUR = ActiveWorkbook.Name
    Call print_pdf("PDF", 3)
    Application.ScreenUpdating = True
     
    End Sub
     
     
    Sub print_pdf(W_Pdf As String, W_nb As Integer)
     
    Dim JobPDF As Object
    Dim Ar() As String, Cpt As Long, I As Long
     
    sNomFichierPDF = ThisWorkbook.Path & "\" & "test.pdf"
     
    Cpt = 0
    For I = 1 To ThisWorkbook.Sheets.Count
        If Left$(ThisWorkbook.Sheets(I).Name, W_nb) = W_Pdf Then
            ReDim Preserve Ar(Cpt)
            Ar(Cpt) = Sheets(I).Name
            Cpt = Cpt + 1
        End If
    Next I
     
    If Cpt = 0 Then Exit Sub
     
    Application.ScreenUpdating = False
    Sheets(Ar).Select
     
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sNomFichierPDF _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
     
    Application.ScreenUpdating = True
     
    End Sub
    cette partie fonctionne très bien.
    c'est lorsque je veux rajouter mon autre PDF que ça se complique...
    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
    Sub Fusion_PDFs()
    Dim oPDDoc1 As Object
    Dim oPDDoc2 As Object
    Dim Num As Long
     
        Set oPDDoc1 = CreateObject("AcroExch.PDDoc")
        Set oPDDoc2 = CreateObject("AcroExch.PDDoc")
     
        oPDDoc1.Open (ThisWorkbook.Path & "\" & "test.pdf")
        oPDDoc2.Open (ThisWorkbook.Path & "\" & "test SAS.pdf")
     
        oPDDoc1.InsertPages 0, oPDDoc2, 0, 1, 0
     
        oPDDoc1.Save 1, ThisWorkbook.Path & "\" & "Fusion.pdf"
     
        oPDDoc2.Close
        oPDDoc1.Close
     
        Set oPDDoc2 = Nothing
        Set oPDDoc1 = Nothing
    End Sub
    j'ai l'erreur 429 : un composant ActiveX ne peut pas créer d'objet
    merci d'avance pour votre aide

  2. #2
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut
    j'ai réussi à résoudre mon erreur 429.
    du coup, j'enchaine à la ligne 10, avec l'erreur 438 : propriété ou méthode non générée par cet objet.

    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
    Sub Fusion_PDFs()
    Dim oPDDoc1 As Object
    Dim oPDDoc2 As Object
    'Dim oPDDoc3 As Object
    Dim Num As Long
     
        Set oPDDoc1 = CreateObject("AcroExch.Document.7")
        Set oPDDoc2 = CreateObject("AcroExch.Document.7")
     
        oPDDoc1.Open (ThisWorkbook.Path & "\" & "test 1.pdf")
        oPDDoc2.Open (ThisWorkbook.Path & "\" & "test 2.pdf")
     
        oPDDoc1.InsertPages 0, oPDDoc2, 0, 1, 0
     
        oPDDoc1.Save 1, ThisWorkbook.Path & "\" & "Fusion.pdf"
     
        oPDDoc2.Close
        oPDDoc1.Close
     
        Set oPDDoc2 = Nothing
        Set oPDDoc1 = Nothing
    End Sub
    Merci d'avance pour votre aide

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir suivant que tu disposes d'Adobe Acrobat Pro ( Payant ), le Reader ne suffit pas, ou de PDFCreator 1.7.3 ( Gratuit ) : ici ou .

Discussions similaires

  1. [XL-2010] Fusion de 2 tableaux sous Excel pour avoir un 3eme- VBA
    Par majdi_bgmr dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/05/2014, 16h16
  2. macro pour découper un fichier pdf sous excel
    Par jibdu94 dans le forum Général VBA
    Réponses: 1
    Dernier message: 18/05/2011, 23h00
  3. Réponses: 6
    Dernier message: 06/05/2011, 17h30
  4. Découper un fichier pdf en pdf sous excel
    Par jibdu94 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/05/2011, 09h50
  5. [XL-2007] Assembler plusieurs pdf depuis excel
    Par androginius dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2010, 10h21

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