Bonjour,
Je viens de me rendre compte que j'ai posté mon message dans la mauvaises catégorie du forum, je la repost donc ici, je peux supprimer l'autre si il faut...
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bonjour à tous !
J'ai trouvé sur l'une des contributions de Kiki29 (que je remercie particulièrement), un bout de code grâce auquel on peut combiner des pdfs. (Le code n'est pas de moi, tout l'honneur lui revient)
Je l'ai essayé et il fonctionne bien, mais j'ai voulu l'adapter pour mon cas, sauf que mon code, qui est quasi similaire, ne fonctionne pas, et je ne comprends pas d'où peut venir l'erreur...
Voici le code :
Je récupère depuis une autre fonction, un tableau de String contenant les chemins des PDFs. J'ai vérifié le contenu du tableau, il est bon, le problème ne vient pas de là.
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 Option Explicit Sub Fusion_PDFs(ByVal name As String, ByRef pdfs() As Variant) Dim oPDDoc() As Object Dim oPDDocFinal As Object Dim Num As Long Dim i As Integer Set oPDDocFinal = CreateObject("AcroExch.PDDoc") oPDDocFinal.Open (pdfs(0)) ReDim oPDDoc(UBound(pdfs)) For i = LBound(pdfs) + 1 To UBound(pdfs) Set oPDDoc(i) = CreateObject("AcroExch.PDDoc") oPDDoc(i).Open (pdfs(i)) Next i ' 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. For i = LBound(oPDDoc) To UBound(oPDDoc) Num = oPDDocFinal.GetNumPages() - 1 oPDDocFinal.InsertPages Num, oPDDoc(i), 0, oPDDoc(i).GetNumPages(), 0 Next i oPDDocFinal.Save 1, ThisWorkbook.Path & "\DRT créés\" & name & ".pdf" 'Application.DisplayAlerts = False For i = LBound(oPDDoc) To UBound(oPDDoc) oPDDoc(i).Close Set oPDDoc(i) = Nothing Next i oPDDocFinal.Close Set oPDDocFinal = Nothing 'Application.DisplayAlerts = True End Sub
En gros j'ouvre le premier pdf dans le oPPDocFinal, puis je boucle sur mon tableau de pdf en ouvrant un AcroExch.PDDoc par pdf, puis je tente ensuite de boucler sur mon tableau de PDDoc pour convertir tout dans le oPPDocFinal.
Le problème se trouve à cette ligne là :
J'ai une erreur d'exécution '91', Variable objet ou de bloc With non définie. Quand je regarde le code, 'i' est toujours à 0. Mon document fait 5 pages, Num est donc égal à 4.
Code : Sélectionner tout - Visualiser dans une fenêtre à part oPDDocFinal.InsertPages Num, oPDDoc(i), 0, oPDDoc(i).GetNumPages(), 0
Je ne comprends pas ce qu'il se passe sachant que je n'ai pas touché à cette partie de code, elle fonctionnait bien dans mon projet de test juste avant d'essayer d'adapter le code pour un projet plus concret.
Vous savez où se trouve ma bêtise ?
Merci de votre attention.
Partager