OVH Cloud OVH Cloud

Nombre de document à imprimer

5 réponses
Avatar
J-Luc
Bonjour,

Comment connaitre en VB pour Word, le nombre de document qui reste à
imprimer dans le driver de l'imprimante.

5 réponses

Avatar
Jean-Marc Hilaire [MS]
Si c'est un poste XP, vous pouvez utiliser certaines classes de WMI :

strComputer = "."Set objWMIService = GetObject("winmgmts:" _ &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")Set
colPrintJobs = objWMIService.ExecQuery _ ("Select * from
Win32_PrintJob")' Affichera Nom de Queue, Job ID, Utilisateur, Nombre de
pages"For Each objPrintJob In colPrintJobs strPrinter =
Split(objPrintJob.Name, ",", -1, 1) MsgBox strPrinter(0) & ", " & _
objPrintJob.JobID & ", " & objPrintJob.Owner & ", " _ &
objPrintJob.TotalPagesNext

"J-Luc" wrote in message
news:
Bonjour,

Comment connaitre en VB pour Word, le nombre de document qui reste à
imprimer dans le driver de l'imprimante.



Avatar
J-Luc
Merci pour la réponse, mais tel que c'est présenté j'ai des messages d'erreur
sous Word. Comment l'écrire proprement ?


Si c'est un poste XP, vous pouvez utiliser certaines classes de WMI :

strComputer = "."Set objWMIService = GetObject("winmgmts:" _ &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")Set
colPrintJobs = objWMIService.ExecQuery _ ("Select * from
Win32_PrintJob")' Affichera Nom de Queue, Job ID, Utilisateur, Nombre de
pages"For Each objPrintJob In colPrintJobs strPrinter =
Split(objPrintJob.Name, ",", -1, 1) MsgBox strPrinter(0) & ", " & _
objPrintJob.JobID & ", " & objPrintJob.Owner & ", " _ &
objPrintJob.TotalPagesNext

"J-Luc" wrote in message
news:
Bonjour,

Comment connaitre en VB pour Word, le nombre de document qui reste à
imprimer dans le driver de l'imprimante.








Avatar
Anacoluthe
Bonjour !

'J-Luc' nous a écrit ...
Merci pour la réponse, mais tel que c'est présenté j'ai des messages d'erreur
sous Word. Comment l'écrire proprement ?


Le code de Jean-Marc a un peu perdu ses lignes :-)
Il marche très bien chez moi sous cette forme :

Public Sub TestImpressionsEnCours()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & _
strComputer & "rootcimv2")
Set colprintjobs = objWMIService.ExecQuery _
("Select * from Win32_PrintJob ")
If colprintjobs.Count = 0 Then Exit Sub
For Each objPrintJob In colprintjobs
strPrinter = Split(objPrintJob.Name, ",", -1, 1)
MsgBox strPrinter(0) & ", " & _
objPrintJob.JobID & ", " & objPrintJob.Owner & ", " _
& objPrintJob.TotalPages
Next
End Sub

Si votre question portait seulement sur le nombre
de documents restant à imprimer :

Public Sub CombienDeDocumentsAImprimer()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & _
strComputer & "rootcimv2")
Set colprintjobs = objWMIService.ExecQuery _
("Select * from Win32_PrintJob ")
MsgBox colprintjobs.Count & " docs à imprimer"
End Sub

Anacoluthe
« Peut-être dit-on moins de sottises qu'on n'en imprime. »
- Edmond et Jules de GONCOURT

Avatar
Jean-Marc Hilaire [MS]
Oui ,merci J-Luc, en effet il faut tenir compte des retours à la ligne qui
dans mon messages sont mal reproduits.

J-Marc
"Anacoluthe" wrote in message
news:%23FkYTK$
Bonjour !

'J-Luc' nous a écrit ...
Merci pour la réponse, mais tel que c'est présenté j'ai des messages
d'erreur sous Word. Comment l'écrire proprement ?


Le code de Jean-Marc a un peu perdu ses lignes :-)
Il marche très bien chez moi sous cette forme :

Public Sub TestImpressionsEnCours()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & _
strComputer & "rootcimv2")
Set colprintjobs = objWMIService.ExecQuery _
("Select * from Win32_PrintJob ")
If colprintjobs.Count = 0 Then Exit Sub
For Each objPrintJob In colprintjobs
strPrinter = Split(objPrintJob.Name, ",", -1, 1)
MsgBox strPrinter(0) & ", " & _
objPrintJob.JobID & ", " & objPrintJob.Owner & ", " _
& objPrintJob.TotalPages
Next
End Sub

Si votre question portait seulement sur le nombre
de documents restant à imprimer :

Public Sub CombienDeDocumentsAImprimer()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & _
strComputer & "rootcimv2")
Set colprintjobs = objWMIService.ExecQuery _
("Select * from Win32_PrintJob ")
MsgBox colprintjobs.Count & " docs à imprimer"
End Sub

Anacoluthe
« Peut-être dit-on moins de sottises qu'on n'en imprime. »
- Edmond et Jules de GONCOURT



Avatar
J-Luc
Merci à tous les deux, les types deux programmes fonctionnent trés bien.

"Jean-Marc Hilaire [MS]" wrote:

Oui ,merci J-Luc, en effet il faut tenir compte des retours à la ligne qui
dans mon messages sont mal reproduits.

J-Marc
"Anacoluthe" wrote in message
news:%23FkYTK$
Bonjour !

'J-Luc' nous a écrit ...
Merci pour la réponse, mais tel que c'est présenté j'ai des messages
d'erreur sous Word. Comment l'écrire proprement ?


Le code de Jean-Marc a un peu perdu ses lignes :-)
Il marche très bien chez moi sous cette forme :

Public Sub TestImpressionsEnCours()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & _
strComputer & "rootcimv2")
Set colprintjobs = objWMIService.ExecQuery _
("Select * from Win32_PrintJob ")
If colprintjobs.Count = 0 Then Exit Sub
For Each objPrintJob In colprintjobs
strPrinter = Split(objPrintJob.Name, ",", -1, 1)
MsgBox strPrinter(0) & ", " & _
objPrintJob.JobID & ", " & objPrintJob.Owner & ", " _
& objPrintJob.TotalPages
Next
End Sub

Si votre question portait seulement sur le nombre
de documents restant à imprimer :

Public Sub CombienDeDocumentsAImprimer()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & _
strComputer & "rootcimv2")
Set colprintjobs = objWMIService.ExecQuery _
("Select * from Win32_PrintJob ")
MsgBox colprintjobs.Count & " docs à imprimer"
End Sub

Anacoluthe
« Peut-être dit-on moins de sottises qu'on n'en imprime. »
- Edmond et Jules de GONCOURT