Bonjour,
Je souhaite remplir un formulaire pdf à partir d'un tableau excel qui répertorie les coordonnées d'un client.
J'ai écrit ce code VBA qui est censé récupérer le fichier pdf, l'ouvrir, le remplir et enregistrer une copie avec Acrobat, mais j'obtiens une erreur 438 : propriété ou méthode non gérée par cet objet. (lignes 52 à 55 problématiques d'après le débogage) :
pdfForm.Fields("Nom").Value = nomComplet
pdfForm.Fields("Adresse").Value = adresseComplete
pdfForm.Fields("Montant1").Value = aide
pdfForm.Fields("Montant2").Value = aide
J'arrive à ouvrir le PDF mais pas à remplir les champs.
J'ai d'abord demandé à une IA qui m'a simplement dit de bien cocher la référence Adobe Acrobat Type library, ce que j'avais déjà fait.
Avez vous une idée de la source du problème? Ai-je mal fait quelque chose dans le code ou s'agit il d'un problème de compatibilité entre les versions d'Excel et d'Acrobat?
Merci d'avance et bonne journée.
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 Private Sub CommandButton1_Click() Dim filePath As String Dim civilite As String Dim nom As String Dim prenom As String Dim adresse As String Dim cp As String Dim ville As String Dim aide As Integer Dim nomComplet As String Dim adresseComplete As String Dim acrobatApp As Object Dim pdfForm As Object ' Étape 1 : Ouvrir le formulaire PDF filePath = "Chemin\vers\mon\fichier.pdf" Shell "explorer.exe """ & filePath & """", vbNormalFocus 'Etape réalisée par une IA car je n'arrivait pas à ouvrir le fichier. MsgBox "Étape 1 : Formulaire PDF ouvert avec succès !", vbInformation, "Étape validée" ' Étape 2 : Récupérer les valeurs des cellules Excel civilite = Sheets("Infos").Range("C3").Value nom = Sheets("Infos").Range("C4").Value prenom = Sheets("Infos").Range("C5").Value adresse = Sheets("Infos").Range("C6").Value cp = Sheets("Infos").Range("C7").Value ville = Sheets("Infos").Range("C8").Value aide = Sheets("Infos").Range("C9").Value MsgBox "Étape 2 : Valeurs des cellules récupérées avec succès !" & vbCrLf & _ "Civilité : " & civilite & vbCrLf & _ "Nom : " & nom & vbCrLf & _ "Prénom : " & prenom & vbCrLf & _ "Adresse : " & adresse & vbCrLf & _ "Code Postal : " & cp & vbCrLf & _ "Ville : " & ville & vbCrLf & _ "Montant de l'aide : " & aide & "", vbInformation, "Étape validée" ' Étape 3 : Concaténer les valeurs pour les champs "Nom" et "Adresse" nomComplet = civilite & " " & nom & " " & prenom adresseComplete = adresse & " " & cp & " " & ville MsgBox "Étape 3 : Valeurs concaténées avec succès !" & vbCrLf & _ "Nom complet : " & nomComplet & vbCrLf & _ "Adresse complete : " & adresseComplete & vbCrLf & _ "Montant de l'aide : " & aide & "", vbInformation, "Étape validée" ' Étape 4 : Remplir le formulaire PDF automatiquement Set acrobatApp = CreateObject("AcroExch.App") Set pdfForm = acrobatApp.GetActiveDoc ' Remplir les champs du formulaire pdfForm.Fields("Nom").Value = nomComplet pdfForm.Fields("Adresse").Value = adresseComplete pdfForm.Fields("Montant1").Value = aide pdfForm.Fields("Montant2").Value = aide ' Enregistrer le formulaire PDF rempli pdfForm.SaveAs "Chemin\vers\mon\fichier_rempli.pdf" pdfForm.Close MsgBox "Étape 4 : Formulaire PDF rempli automatiquement et enregistré avec succès !", vbInformation, "Étape validée" End Sub
Partager