Imposer un délai d'attente lors d'un impression word

msohet Messages postés 76 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 3 mai 2005 - 16 janv. 2003 à 09:40
GBICK Messages postés 1 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 13 août 2005 - 13 août 2005 à 18:55
Bonjour à tous,

je cherche comment imposer un délai d'attente lors d'une impression dans word (version 95) pilotés en OLE par VB avant de clore le document (qui inhibe l'impression),
je sais que pour word 97 la solution suivante marche a merveille :

dim wordapp as object
set wordapp = createobject ("word.application")
wordapp.Documents.Open App.Path & "\bidon.dot"
wordapp.printout

While wordapp.BackgroundPrintingStatus <> 0
wend

seulement ceci est du code VB alors que l'Automation pour word 95 est du code VBA, du genre :

dim wordapp as object
set wordapp = createobject ("word.basic")

wordapp.fichiernouveau modele:="bidon.dot" wordapp.fichierimprimer

donc voila, si quelqu'un a une idée, je suis pret à l'entendre.

D'avance merci

SOHET Morgan

C.N.P.O. - Le Belloy

3 réponses

XWinnieX Messages postés 71 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 20 septembre 2004
16 janv. 2003 à 13:07
j'ai eu un problème similaire mais pas avec la même version de word cette "solution" laisse le temps de prendre l'impression en compte et ne l'annule pas... mais bon c'est du bidouillage...

wrdDoc.PrintOut

MsgBox ("Impression en cours..."), vbOKOnly

wrdDoc.Close SaveChanges:=0
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
17 janv. 2003 à 09:16
Bonjour,

Tu peux aussi utiliser l'option "Sleep(xxxxx)"

Exemple ci-dessous, où j'utilise Explorer pour ouvrir et éditer des fichiers (doc ou xls).

If Left(fichier.name,22) = "SLIFAC 32 - 61 Espagne" Then
WshShell.SendKeys "^p"
WScript.Sleep(2000)
WshShell.SendKeys "{ENTER}" 'imprimer => ok
WScript.Sleep(3000)
WshShell.SendKeys "{ENTER}" 'poursuivre l'impression => ok
WScript.Sleep(3000)
WshShell.SendKeys "%(fq)" 'fermeture du document
WScript.Sleep(3000)
0
GBICK Messages postés 1 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 13 août 2005
13 août 2005 à 18:55
J'avais le même problème avec une version plus récente de word ( pour
imprimer plusieurs documents à la suite ) ; je ne sais donc pas si
cette solution fonctionnera sur 95.



Dans l'aide vba word , sur la fonction printout :



expression.PrintOut(Background,
Append, Range, OutputFileName,
From, To, Item, Copies,
Pages, PageType, PrintToFile,
Collate, FileName, ActivePrinterMacGX,
ManualDuplexPrint, PrintZoomColumn,
PrintZoomRow, PrintZoomPaperWidth,
PrintZoomPaperHeight)


Background Argument de type Variant facultatif.
Affectez-lui la valeur True pour que l'exécution de la macro se poursuive
pendant l'impression du document dans Microsoft Word.



Et donc avec False, le programme attend que l'impression ait
bien été prise en compte avant de passer à l'instruction suivante (
l'execution en est ralentie mais l'impression ne nécessite pas une
confirmation, ex msgbox, permettant de lancer 100 impressions à la
suite sans devoir cliquer 100 fois sur un bouton ).
0
Rejoignez-nous