bonjour michel
tu peux tester cette macro .Dans l'exemple , un message s'affiche lorsque l'impression est terminée . Tu pourras ensuite l'adapter pour ton projet
je ne pense pas que cela fonctionne pour des versions de Windows antérieures à Win2000
necessite d'activer la reference Microsoft WMI Scripting Library
dans visual Basic Editor :
Menu Outils
References
coches la reference Microsoft WMI Scripting Library
cliques sur OK pour valider
'********** dans ThisWorkbook ************************
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Temporisation
End Sub
'******************************************************
''****************dans un module *******************************************
Sub Temporisation()
Application.OnTime Now + TimeValue("00:00:02"), "Suivi_Impression"
End Sub
Sub Suivi_Impression()
'michelxld pour le forum http://www.excel-downloads.com
'http://www.excel-downloads.com/html/French/forum/messages/1_137747_137747.htm
'le 01.01.2005 , testé avec WinXP et Excel2002
'necessite d'activer la reference Microsoft WMI Scripting Library
Dim nomPC As String
Dim objWMIService As WbemScripting.SWbemServices
Dim objPrintJobSet As Object
nomPC = "."
Set objWMIService = GetObject("winmgmts:\\" & nomPC & "\root\cimv2")
Set objPrintJobSet = objWMIService.InstancesOf("Win32_PrintJob")
'*****************intercepte la fin d'impression******************************
If objPrintJobSet.Count = 0 Then
MsgBox "Impression terminée"
Finir
Exit Sub
End If
'*******************************************************************************
Temporisation
End Sub
Sub Finir()
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:01"), "Suivi_Impression", , Schedule:=False
End Sub
bon apres midi et tres bonne année 2005
MichelXld