Problème fermeture Adobe Acrobat après macro
Bonjour les amis codeurs,
J'ai un soucis avec un bout de code qui diffère de ce que je fais habituellement, en général, j'automatise les données sur Word ou Excel puis sauvegarde en PDF. Mais la j'ouvre un formulaire PDF puis le rempli pour le sauver. J'ai deux soucis:
- Est-il possible de masquer Adobde comme on fait par exemple pour Word ? "WordApp..Visible = False"
- Lorsque j’exécute la macro, j'ai un second fichier PDF qui ouvert, qui me sert et que je ne veux pas fermer, le problème est que la macro actuelle sauve le formulaire mais PDDoc.Close ne le ferme pas... Et si j'utulise la formule du dessous "AdobeKill", il va me fermer mon second PDF. Auriez-vous une solution ?
Voici mon code:
Set AVDoc = CreateObject("AcroExch.AVDoc")
If AVDoc.Open(PageDeGarde, "") Then
Set PDDoc = AVDoc.GetPDDoc
Set JSO = PDDoc.GetJSObject
Set x = JSO.getField("Equipement")
x.Value = MD1_Type_Equipement
x.ReadOnly = True
Set x = JSO.getField("AR")
x.Value = MD1_AR
x.ReadOnly = True
Set x = JSO.getField("Client")
Client = Right(Range("D1"), Len(Range("D1")) - 33)
x.Value = Left(Client, Len(Client) - 10)
x.ReadOnly = True
Set x = JSO.getField("Image_af_image")
x.buttonImportIcon "C:\Users\clement\Desktop\Graisseur.png" '->>>>> Mettre lien
x.ReadOnly = True
If Langue = 1 Then PDDoc.Save 1, Annexe.Range("D1") & "4 - Qualité\" & MD1_AR & "-" & MD1_Poste & "\" & MD1_AR & "-" & MD1_Poste & " - Page de garde - FR.pdf"
If Langue = 2 Then PDDoc.Save 1, Annexe.Range("D1") & "4 - Qualité\" & MD1_AR & "-" & MD1_Poste & "\" & MD1_AR & "-" & MD1_Poste & " - Page de garde - AN.pdf"
PDDoc.Close
'KillAdobe = Shell("Taskkill /im Acrobat.exe /f", 0)Merci.
Bon finalement après des 10aines et dizaines de pages de recherche j'ai trouvé quelque chose qui va bien alors je partage pour ceux que ça pourrait aider: J'ai ajouté un
AVDoc.Close (True)
Et cela fonctionne parfaitement. Ne pas oublier de réinitialiser l'objet en fin de code
Voici le code complet:
Set AVDoc = CreateObject("AcroExch.AVDoc")
If AVDoc.Open(PageDeGarde, "") Then
Set PDDoc = AVDoc.GetPDDoc
Set JSO = PDDoc.GetJSObject
Set x = JSO.getField("Equipement")
x.Value = MD1_Type_Equipement
x.ReadOnly = True
Set x = JSO.getField("AR")
x.Value = MD1_AR
x.ReadOnly = True
Set x = JSO.getField("Client")
Client = Right(Range("D1"), Len(Range("D1")) - 33)
x.Value = Left(Client, Len(Client) - 10)
x.ReadOnly = True
Set x = JSO.getField("Image_af_image")
x.buttonImportIcon "C:\Users\clement\Desktop\Graisseur.png" '->>>>> Mettre lien
x.ReadOnly = True
If Langue = 1 Then PDDoc.Save 1, Annexe.Range("D1") & "4 - Qualité\" & MD1_AR & "-" & MD1_Poste & "\" & MD1_AR & "-" & MD1_Poste & " - Page de garde - FR.pdf"
If Langue = 2 Then PDDoc.Save 1, Annexe.Range("D1") & "4 - Qualité\" & MD1_AR & "-" & MD1_Poste & "\" & MD1_AR & "-" & MD1_Poste & " - Page de garde - AN.pdf"
AVDoc.Close (True)
End If