Référence // Acroexch.app

Bonjour,

Qu'elle référence je dois activer pour utiliser cette fonction (Acroexch.app) ?

J'ai téléchargé Acrobat mais rien ne marche...

Merci

Bonjour,

D'abord Acroexch.app n'est pas une fonction mais une classe d'Adobe Acrobat.

Voir ce sujet qui devrait vous éclairer sur son utilisation :

https://forum.excel-pratique.com/excel/probleme-interaction-avec-acrobat-pro-181225

Bonjour Thev,

J'ai lu le post mais je ne trouve pas mon erreur.

Ci-dessous ma macro (trouvé sur un forum), il me dit que l'interface n'est pas prise en compte...:

    Dim arrayFilePaths() As Variant
    Set app = CreateObject("AcroExch.app")

    arrayFilePaths = Array("Lien1, à changer", _
                            "Lien2, à changer", _
                            "Lien3, à changer")

    Set primaryDoc = CreateObject("AcroExch.PDDoc")
    OK = primaryDoc.Open(arrayFilePaths(0))
    Debug.Print "PRIMARY DOC OPENED & PDDOC SET: " & OK

    For arrayIndex = 1 To UBound(arrayFilePaths)
        numPages = primaryDoc.GetNumPages() - 1

        Set sourceDoc = CreateObject("AcroExch.PDDoc")
        OK = sourceDoc.Open(arrayFilePaths(arrayIndex))
        Debug.Print "SOURCE DOC OPENED & PDDOC SET: " & OK

        numberOfPagesToInsert = sourceDoc.GetNumPages

        OK = primaryDoc.InsertPages(numPages, sourceDoc, 0, numberOfPagesToInsert, False)
        Debug.Print "PAGES INSERTED SUCCESSFULLY: " & OK

        OK = primaryDoc.Save(PDSaveFull, arrayFilePaths(0))
        Debug.Print "PRIMARYDOC SAVED PROPERLY: " & OK

        Set sourceDoc = Nothing
    Next arrayIndex

    Set primaryDoc = Nothing
    app.Exit
    Set app = Nothing
    MsgBox "DONE"

Je cherche une façon pour fusionner des PDF, j'ai essayé avec PDF Creator mais j'ai un bug connu qui m'empêche de faire plusieurs fusions...

Merci

Je cherche une façon pour fusionner des PDF, j'ai essayé avec PDF Creator mais j'ai un bug connu qui m'empêche de faire plusieurs fusions...

Déjà avez-vous pris le bon, c'est à dire celui de pdfforge ? Voir le code que j'ai fourni dans ce sujet : https://forum.excel-pratique.com/excel/combiner-des-pdf-avec-vb-159000#p983878

Oui exactement celui la. Mais j'ai un problème...La 1ère fusion marche mais dès que je veux en faire une autre ca prend uniquement le 1er PDF. Lorsque je vais sur l'application il me montre les autres PDF en "Queue"... J'ai lu sur des forums anglais qu'il y a un bug du logiciel avec 10 PDF et plus.

Pas très précise votre réponse. Avez-vous appliqué mon code ?

La 1ère fusion marche mais dès que je veux en faire une autre ca prend uniquement le 1er PDF.

Vous fusionnez combien de fichiers la 1ère fois et combien la seconde fois ?

Je fusionne 4 fichiers mais certains peuvent contenir plusieurs pages (ici 44 pages).

La seconde fois je relance la macro tout simplement. Le résultat de la seconde fusion est uniquement le premier PDF.

Résultat après ouverture de PDF Creator :

sans titre

J'ai essayé de changer le nom du fichier mais le résultat est le même

Cela pourrait venir d'une non-libération du workflow. Placez la libération du workflow au début du code :

    On Error Resume Next
    '// Libération instance PDFCreator
    workflow.ReleaseCom
    On Error GoTo 0

et ajouter à la fin du code

set PDFCr = Nothing
set workflow = Nothing

Pareil...

Ci-dessous ma macro (j'ai supprimé qlqs chemins pour confidentialité) :

Dim CtrI As Long
Dim oPDF As PdfCreatorObj
Dim Q As PDFCreator_COM.Queue
Dim job As PDFCreator_COM.PrintJob
Dim CheminFichierFusionne As String, NomFichierFusionne As String, RepertoirePdf As String, ChaineATrouver As String
Dim Fso As Object, Fich As Object

    On Error Resume Next
    '// Libération instance PDFCreator
     Q.ReleaseCom
    On Error GoTo 0

    On Error GoTo Fin

    Dim MonDossier As String
    MonDossier = Left(ThisWorkbook.Path, Len(ThisWorkbook.Path) - 11) & "" & Worksheets("MAIN").Range("E165").Value & "_" & Worksheets("MAIN").Range("D165").Value & "" & Worksheets("MAIN").Range("C165").Value & "\"

    ChaineATrouver = ".pdf"
    CheminFichierFusionne = MonDossier
    NomFichierFusionne = MonDossier & "\" & Worksheets("MAIN").Range("D2").Value & "_" & Worksheets("MAIN").Range("D4").Value & "_" & Right(ActiveSheet.Range("D5").Value, Len(ActiveSheet.Range("D5").Value) - 6) & "_" & Worksheets("MAIN").Range("D165").Value & "_" & "Carnet" & Worksheets("MAIN").Range("C165").Value
    RepertoirePdf = MonDossier

    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set oPDF = New PdfCreatorObj

    With oPDF
         For Each Fich In Fso.getfolder(RepertoirePdf).Files
             If Fich Like "*Car*" Then
                .AddFileToQueue RepertoirePdf & Application.PathSeparator & Fich.Name
                End If
         Next Fich

        For Each Fich In Fso.getfolder(RepertoirePdf).Files
             If Fich Like "*Liste*" Then
                .AddFileToQueue RepertoirePdf & Application.PathSeparator & Fich.Name
                End If
         Next Fich

        For Each Fich In Fso.getfolder(RepertoirePdf).Files
             If Fich Like "*Fiche*" Then
                .AddFileToQueue RepertoirePdf & Application.PathSeparator & Fich.Name
                End If
         Next Fich

        For Each Fich In Fso.getfolder(RepertoirePdf).Files
             If Fich Like "*el-*" Then
                .AddFileToQueue RepertoirePdf & Application.PathSeparator & Fich.Name
                End If
         Next Fich

    End With

    Set Q = New PDFCreator_COM.Queue

    With Q
         .Initialize
         .WaitForJobs 2, 10
         Debug.Print "q.Count: " & Q.Count
         .MergeAllJobs
    End With

    While Q.Count > 0
            Set job = Q.NextJob
            job.SetProfileByGuid ("DefaultGuid")
            job.ConvertTo (NomFichierFusionne) '(OutPath)
    Wend

    Unload UF_ATTENTE
    MsgBox "Carnet créé dans le dossier !", vbInformation
    Q.ReleaseCom

    GoTo Fin

Fin:

On Error Resume Next
Q.Clear

    Set Fso = Nothing
    Set job = Nothing
    Set Q = Nothing
    Set oPDF = Nothing

Je ferai à tout hasard ces modifs :

Dim oPDF As PDFCreator_COM.PdfCreatorObj
    With Q
         .Initialize
         .WaitForJobs .Count, .Count * 3
         Debug.Print "q.Count: " & Q.Count
         .MergeAllJobs
    End With

et puis, êtes_vous certain que votre procédure est bien terminée ? Visiblement, il reste des paramètres positionnés au niveau du classeur en mémoire, une sauvegarde du classeur où se déroule l'exécution devrait les éliminer :

ThisWorkbook.Save

Pareil , tjr le même problème...

Je vais laisser tomber

Par contre...(le miracle). Si je lance la macro, je ferme et réouvre excel ca marche!!

Est ce qu'il y a une/des fonctions pour relancer le fichier excel ?

J'ai fait le test, faut fermer EXCEL et pas juste le classeur. Comment faire...?

Par contre...(le miracle). Si je lance la macro, je ferme et réouvre excel ca marche!!

Est ce qu'il y a une/des fonctions pour relancer le fichier excel ?

Pour relancer l'ouverture du fichier Excel dans une nouvelle application, il y a 2 principes de solution :

1- utiliser un premier classeur de démarrage qui te permettra d'ouvrir dans une autre application, ton fichier contenant ta macro de fusion

2- utiliser le planificateur de tâche en y créant la tâche d'ouverture de ton fichier puis en modifiant son déclenchement via VBA pour qu'elle s'exécute après fermeture de ton fichier.

Merci

Rechercher des sujets similaires à "reference acroexch app"