Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb avec une fenêtre Acrobate Reader restant ouverte

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat01200

XLDnaute Occasionnel
Bonjour le forum !

Un nouveau petit problème à vous exposer : j'ai une macro me permettant d'automatiser l'impression de documents pdf liés à la valeur d'une cellule de mon classeur EXCEL et ça marche... le seul problème, c'est qu'Acrobate ne se ferme pas à l'issue de l'impression (reste une fenêtre vide !)
Quelle(s) ligne(s) de code rajouter pour fermer cette fenêtre d'Acrobate Reader (tout en gardant bien entendu mon classeur Excel ouvert !) ? Voici mon code :

Sub Imprimer()

Application.ScreenUpdating = False

Sheets("Recherche").Select
Range("C8").Select
Selection.Copy
Range("C10").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Dim NomFichier
NomFichier = [c5].Value & [c10].Value & ".pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "print", NomFichier, "", "", 0

Else
MsgBox " Fichier introuvable !"
End If

Sheets("Recherche").Select
Range("C10").Select
Selection.ClearContents
Range("A1").Select

Application.ScreenUpdating = True

MsgBox " Impression en cours... "

End Sub
 
Re : Pb avec une fenêtre Acrobate Reader restant ouverte

bonjour pat01200


voici Ce lien n'existe plus (X-Cell) qui montre comment fermer une application ouverte à partir du Shell.

bonne lecture...


a+
 
Re : Pb avec une fenêtre Acrobate Reader restant ouverte

re bonjour,


le code du lien (fourni au précédent post) ne fonctionne pas chez moi.
j'ai trouvé un autre exemple qui a l'air de fonctionner :
Code:
Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long 'API de fermeture de Process
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long 'Ouverture de Process

'Procedure qui tue un processus
Sub KillProcess()

'Const PROCESS_QUERY_INFORMATION = &H400
Static ProcessId:
Dim hProcess, Termine&


'lancer le programme (ici le démineur)
ProcessId = Shell("Winmine.exe", vbMinimizedNoFocus)
'On récupère le numéro de son Process
hProcess = OpenProcess(1, False, ProcessId)


MsgBox "Pause (le démineur sera ensuite refermé)"


'On Ferme le process lancé par un TerminateProcess
Termine& = TerminateProcess(hProcess, 4)

End Sub
a+
 
Re : Pb avec une fenêtre Acrobate Reader restant ouverte

Bonjour Pat, Romain

Voici un code de MichelXLD qui permet de fermer une application (ici IEXPLORE. Il suffit de changer le nom (voir avec ctrl+alt+Sup, gestionnaire de tâches).

Il faut penseer à activer la reference Microsoft WMI Scripting Library (Alt+F, \outils \références)

Code:
Sub fermerUneApplication()
'necessite d'activer la reference Microsoft WMI Scripting Library
'testé avec Excel2002 et WinXP
'michelxld le 04.01.2005
Dim objProcess As WbemScripting.SWbemObject
Dim colProcessList As WbemScripting.SWbemObjectSet
Dim objWMIService As WbemScripting.SWbemServices
Dim strComputer As String
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.execQuery _
("Select * from Win32_Process Where Name = 'IEXPLORE.EXE'")
For Each objProcess In colProcessList
objProcess.Terminate
Next
End Sub
 
Re : Pb avec une fenêtre Acrobate Reader restant ouverte

Tantôt j'ai un message d'erreur me signalant par exemple que "Set colProcessList" n'est pas bon, tantôt cela modifie ma macro ou cela la bloque... bref je n'ai pas encore trouvé le bon code !
 
Re : Pb avec une fenêtre Acrobate Reader restant ouverte

Bonjour à tous,

Mon problème reste entier, car les solutions proposées sont externes (Je ne cherche pas une fonction mais juste quelques lignes de code à insérer dans ma macro pour qu'Acrobat se ferme après avoir été ouvert)...
N'est-ce vraiment pas possible ?
 
Re : Pb avec une fenêtre Acrobate Reader restant ouverte

bonjour pat01200, MJ13,


as-tu regardé la solution vers laquelle pointe mon dernier post ?


car tu n'aurais qu'à rajouter à la fin de ta macro
Code:
KillProcess Acrobat.exe
(et bien sur mettre la fonction KillProcess dans ton projet...)

a+
 
Re : Pb avec une fenêtre Acrobate Reader restant ouverte

Bonjour Pat, Romain

Sinon peut être ce code (à adapter)

Code:
Sub Ferme_Fenetre_suivante()
'mettre une tempo si besoin
SendKeys ("%{TAB}"), True
SendKeys ("%{F4}"), True
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
791
A
Réponses
14
Affichages
1 K
Arnaud59000
A
R
Réponses
0
Affichages
3 K
R
B
Réponses
6
Affichages
1 K
benjaminxls
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…