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 :

Erreur 438 remplissage PDF. [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2024
    Messages : 4
    Par défaut Erreur 438 remplissage PDF.
    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

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2024
    Messages : 4
    Par défaut
    Citation Envoyé par quaizya Voir le message
    s'agit il d'un problème de compatibilité entre les versions d'Excel et d'Acrobat?
    J'ai oublié de préciser : -Microsoft® Excel® 2019 MSO (Version 2401 Build 16.0.17231.20194) 32 bits
    -Adobe Acrobat Pro DC, Version 2020.006.20042

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 246
    Par défaut
    Hello,
    il y a un truc louche dans ton code :
    tu ouvres ton pdf avec l'explorer et pas directement avec acrobat et tu n'utilises pas getfield pour utiliser les champs voir ici

    [EDIT] c'est plus fiable ici

    Ami calmant, J.P

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2024
    Messages : 4
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    il y a un truc louche dans ton code :
    tu ouvres ton pdf avec l'explorer et pas directement avec acrobat et tu n'utilises pas getfield pour utiliser les champs voir ici

    [EDIT] c'est plus fiable ici

    Ami calmant, J.P
    C'est bon, j'ai réussi merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Erreur 438 : Parcourir
    Par trihanhcie dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/03/2007, 12h05
  2. Réponses: 1
    Dernier message: 20/08/2006, 17h34
  3. Réponses: 6
    Dernier message: 07/06/2006, 12h41
  4. [newbie]message erreur 438 object doen't support ...
    Par megapacman dans le forum Access
    Réponses: 6
    Dernier message: 13/03/2006, 14h28
  5. [Adobe Acrobat] Erreur d'ouverture pdf v 6.0 avec Reader 4.0
    Par batou22003 dans le forum Autres langages
    Réponses: 3
    Dernier message: 20/12/2005, 17h43

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