Bonjour à tous,

j'ai un soucis avec le code que j'ai à disposition.

Contexte:
Via une liste de liens PDF dans un fichier Excel, j'intègre dans tous les fichiers de cette liste une image (via le lien indiqué dans une cellule).

Le code fonctionne bien sauf quand il y a un champ dynamique, je n'y accède plus.
En effet, l'image est intégré comme un bouton d'où le fait que je n'accède plus aux champs dynamiques en arrière plan.

Quelqu'un pourrait-il m'aider à trouver la solution pour que j'intègre l'image sans qu'il n'y ait de problème de saisie dans le PDF ?

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Public Sub InsertImagePDF()
 
Dim PDFinputFile As String, PDFoutputFile As String
Dim imageFile As String
Dim AcrobatApp As Acrobat.AcroApp
Dim AcroAVDocInput As Acrobat.AcroAVDoc 'PDF à modifier
Dim AcroPDDocInput As Acrobat.AcroPDDoc 'PDF modifié
Dim jso As Object
Dim pageRect As Variant
Dim pageField As Object
Dim fieldRect(0 To 3) As Double
Dim page As Long
Dim CelImage As String
Dim Cel As Range
 
CelImage = Range("B1").Value 'Lien vers l'image à intégrer
 
Range("A3", Range("A3").End(xlDown)).Select 'Liste des liens PDF à modifier
 
For Each Cel In Range("A3", Range("A3").End(xlDown))
If Cel <> "" Then
 
    PDFinputFile = Cel
    imageFile = CelImage
 
    PDFoutputFile = Replace(PDFinputFile, ".pdf", " Modif.pdf")
 
    Set AcrobatApp = New Acrobat.AcroApp
    Set AcroAVDocInput = New Acrobat.AcroAVDoc
 
    If AcroAVDocInput.Open(PDFinputFile, "") Then
 
        Set AcroPDDocInput = AcroAVDocInput.GetPDDoc()
 
        Set jso = AcroPDDocInput.GetJSObject
 
        For page = 0 To AcroPDDocInput.GetNumPages() - 1
 
            'Obtenir les coordonnées des limites de la page - calcul position du bouton
            pageRect = jso.getPageBox("Crop", page)
 
            'Coordonnées du bouton à ajouter - en haut à gauche (x,y), en bas à droite (x,y)
 
            'Etirer en haut à gauche
            fieldRect(0) = 30
            'Réduire vers la gauche
            fieldRect(1) = 660
            'Etirer en bas à droite
            fieldRect(2) = 580
            'Haut - Bas
            fieldRect(3) = -590
 
            'Ajout du bouton avec image
            Set pageField = jso.addField("button" & page + 1, "button", page, fieldRect)
            pageField.buttonImportIcon imageFile
            pageField.buttonPosition = jso.Position.iconOnly
            pageField.ReadOnly = False
 
        Next
 
        AcroPDDocInput.save 1, PDFoutputFile
        AcroAVDocInput.Close True
        AcroPDDocInput.Close
 
'Si besoin, ouverture du PDF modifié
'        If AcroAVDocInput.Open(PDFoutputFile, "") Then
'            AcrobatApp.Show
'        End If
 
    Else
 
        MsgBox "Erreur dans le listing des liens PDF."
 
    End If
 
    Set AcroPDDocInput = Nothing
    Set AcroAVDocInput = Nothing
    Set AcrobatApp = Nothing
 
End If
 
Next Cel
 
MsgBox "Tous les fichiers PDF ont été modifié !"
 
End Sub