Bonsoir
Avec ton fichier qui ne fait .... rien , normal que cela ne va pas
Excel ne reconnait que des appli (logiciels) comme Word, Access , Acrobat etc
et pas des types de fichiers Excel peut fermer des Xls , WOrd des .doc etc . Là faut préciser quelle appli tu veux fermer , celle-ci étant un "Objet" donc un EXE qui forcément fermera ton fichier
Si tu avais un peu fouiné sur le Web en 5min tu aurais trouvé un départ de solution comme ceci : https://forum.excel-pratique.com/viewtopic.php?t=63248
J'ai pas testé mais la 2eme propo me semble plus nette et rapide Vbs & Vba se rapprochent
Bonne continuation
Téléchargez les fichiers joints dans le même répertoire (le bureau) et exécutez ces macros très simples :
Code:
Sub OuvrirPDF()
CreateObject("WScript.Shell").Run ThisWorkbook.Path & "\Toto.pdf"
End Sub
Sub FermerPDF()
CreateObject("WScript.Shell").Run "taskkill.exe /IM AcroRd32.exe /T /F", 0
End Sub
Elles fonctionnent très bien chez moi sur Win 10 - Excel 2013, je ne sais pas si c'est le cas pour toutes les versions.
Merci pour ta réponse, je me suis effectivement rendu compte en validant mon post hier que les mots-clés de ma demande faisaient s’afficher sur ce même forum des discussions un peu similaires …
Bonjour job75,
Merci pour ces bouts de code, qui m’ont permis d’avancer.
Concernant l’ouverture du fichier pdf, votre code plante chez moi (je suis en excel 2013 windows 7)
avec le message « La méthode run de l’objet WScript.Shell a échoué »
J’ai regardé un peu partout et ai adapté comme suit, qui fonctionne nickel
Code:
Sub OuvrePDF()
Dim Datei As String
Datei = ThisWorkbook.Path & "\Toto.pdf"
CreateObject("Shell.Application").Open (Datei)
End Sub
Concernant votre code pour fermer le pdf, il fonctionne mais en fait, je constate qu’il supprime le pdf (et du même coup le ferme)
Je cherchais un moyen de simplement le fermer et pas de le supprimer
J’ai essayé d’adapter le code mais ça plante … j’ai probablement naïvement remplacer Open par Close …
Code:
Sub FermePDF()
Dim Datei As String
Datei = ThisWorkbook.Path & "\Toto.pdf"
CreateObject("Shell.Application").Close (Datei)
End Sub
Y a-t-il un moyen de juste fermer et non flinguer le pdf ?
Pour fermer un logiciel proprement, j'utilise souvent un code avec Sendkeys. Normalment on doit pouvoir aussi utiliser Alt+F4 avec SendKeys ("%{F4}"). Le problème, c'est que souvent cela ne fonctionne pas bien.
Exemple à adapter:
VB:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Ferme_FF()
Sleep 1000
Application.SendKeys ("%f"), True
Sleep 2000
Application.SendKeys ("q"), True
Sleep 1000
Application.SendKeys ("~"), True
Sleep 1000
End Sub
VB:
Sub Ferme_DOc_Alt_F4()
ActiveWorkbook.FollowHyperlink ("C:\Chemin\NomFichier.docx")
Sleep 3000
Application.SendKeys ("%{F4}"), True
End Sub
Bonjour Michel,
merci pour ces précisions; je n'ai malheureusement jamais utilisé les sendkeys et ne saurai donc pas donner mon avis ...
Tu évoques l'alternative consistant à devoir utiliser SHELL : à ce propos, as-tu une idée pourquoi la méthode Open fonctionne alors que Close conduit à un plantage (voir mon dernier post #12) ?