VBA fermé un PDF ouvert avec Application.GetOpenFilename

Bonjour,

tout est dans le titre, je met le code pour reproduire facilement mon problème,

Private Sub SelectPDF()
Dim PathPDF As String

PathPDF = Application.GetOpenFilename("Fichier PDF (*.pdf), *.pdf", , "Sélectionner le fichier PDF")

If PathPDF <> "" Then

ActiveSheet.OLEObjects.Add(Filename:=PathPDF, Link:=False, _
    DisplayAsIcon:=True, IconFileName:="C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe", IconIndex:=0, IconLabel:=Dir(Fichier)).Activate

Else

End If
End Sub

L'objectif est d'afficher l'explorateur de fichier et d'ajouter le PDF dans Excel.

Ce code le fait très bien mais en plus il ouvre le PDF dans Adobe, ce qui n'était pas vraiment voulu.

Je ne parvient pas a fermé le PDF ouvert dans Adobe depuis le VBA du fichier Excel.

Une idée ?

Bonjour, pour fermer un pdf par vba çà ne se fait pas comme un fichier excel qu'on ferme car ce n'est pas reconnu.

On utilise plus plus souvent une macro pour "Tuer le processus" ADobe afin de fermer l'application et du même coup le fichier.

Sub FermerPDF()
CreateObject("WScript.Shell").Run "taskkill.exe /IM AcroRd32.exe /T /F", 0
End Sub

Sauf que si un PDF est déjà ouvert ça va le fermé aussi, sans distinction :/

Peut-être qu'il y a un équivalent à Application.GetOpenFilename pour obtenir le Path mais qui n'ouvrira pas le fichier ?

NOTA : nos poste on la version payant d'Adobe (DC)

Autant pour moi, ce n'est pas ma façons d'obtenir le path qui ouvle le PDF mais :

ActiveSheet.OLEObjects.Add(Filename:=PathPDF, Link:=False, _
    DisplayAsIcon:=True, IconFileName:="C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe", IconIndex:=0, IconLabel:=Dir(Fichier)).Activate

Je n'ai pas trouvé de paramètre pour précisé à OLEObjects.Add de ne pas ouvrir le fichier, je présume que c'est obligatoire...

Existe-t-il une solution pour joindre un fichier sans passer par l'ouverture de ce dernier ?

PASTROPSURE mais à tester,

j'sais pas disons que G-USÉ d'imagination

Sub TrouverPDF()

 On Error GoTo Rien
ActiveSheet.OLEObjects.Add(Filename:=PathPDF, Link:=False).Crackwood01DansLesNuages
Rien:

End Sub

Bonjour Crackwood01,

Bien joué, j'ai bien compris que je pouvais remplacer. Crackwood01DansLesNuages par n'implore quoi qui n'est pas une méthode de OLEObjects et que cela créer une erreur, étonnant que ça marche et franchement, je me demande comment tu as pensé à ça.

Je passe le poste en résolu.

Encore merci

Bonjour Asketill,

en fait je cherchais un paramètre qui arrêterais la procédure avant l'ouverture ... puis je me suis dit qu'en créant une erreure et en l'ignorant ca le ferait!!

tout simplement, la route du succès comporte souvent des "erreures"!!

Rechercher des sujets similaires à "vba ferme pdf ouvert application getopenfilename"