Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Faire une pause dans le code le temps d'afficher un apreçu Word

5 réponses
Avatar
Pierre Archambault
Windows XP Pro, Office 2003

Bonjour à tous,

J'ai un programme VBA Excel qui génère un nouveau document Word
(publipostage). L'utilisateur a ensuite le choix d'imprimer immédiatement ce
document ou de simplement consulter l'aperçu de ce document. Le problème
c'est que l'affichage de l'aperçu ne dure qu'une fraction de seconde car la
ligne suivante du code ferme le document et quitte Word.

De la même façon, si l'utilisateur choisit d'imprimer le document, je dois
ajouter une ligne de code pour faire une pause avant la fermeture sinon, le
code pour fermer Word s'exécute avant que l'impression n'ait le temps de
commencer.

Je voudrais que dans le cas d'un aperçu, l'utilisateur puisse avoir le temps
d'examiner le document le temps voulu et que le code du programme attende
que l'aperçu soit fermé par l'utilisateur avant de poursuite avec la
fermeture du document Word.

Dans le cas ou l'utilisateur choisit d'imprimer, je souhaiterais pouvoir
recevoir confirmation de la part de l'imprimante que le document a bel et
bien été reçu et que le code peut procéder à la fermeture.

Est-ce possible?

Merci

Pierre

5 réponses

Avatar
LSteph
Bonsoir Pierre,
voici 3 fois que tu racontes la même histoire sans donner de retour aux
propositions ou questions.

Alors au cas où, je repose cette question qui permettrait d'y voir plus
clair:
J'ai un programme VBA Excel qui génère un nouveau document Word


c'est quoi dans ta macro qui fait tout ça?



(parceque normalement l'aperçu doit te laisser le temps d'y voir!)

...sinon à la prochaine.

;-)

--
lSteph

Windows XP Pro, Office 2003

Bonjour à tous,

J'ai un programme VBA Excel qui génère un nouveau document Word
(publipostage). L'utilisateur a ensuite le choix d'imprimer immédiatement ce
document ou de simplement consulter l'aperçu de ce document. Le problème
c'est que l'affichage de l'aperçu ne dure qu'une fraction de seconde car la
ligne suivante du code ferme le document et quitte Word.

De la même façon, si l'utilisateur choisit d'imprimer le document, je dois
ajouter une ligne de code pour faire une pause avant la fermeture sinon, le
code pour fermer Word s'exécute avant que l'impression n'ait le temps de
commencer.

Je voudrais que dans le cas d'un aperçu, l'utilisateur puisse avoir le temps
d'examiner le document le temps voulu et que le code du programme attende
que l'aperçu soit fermé par l'utilisateur avant de poursuite avec la
fermeture du document Word.

Dans le cas ou l'utilisateur choisit d'imprimer, je souhaiterais pouvoir
recevoir confirmation de la part de l'imprimante que le document a bel et
bien été reçu et que le code peut procéder à la fermeture.

Est-ce possible?

Merci

Pierre







Avatar
Daniel.C
Bonsoir.
Tu peux peut-être insérer un msgbox avant la ligne de code qui ferme word ?
Cordialement.
Daniel
"Pierre Archambault" a écrit dans le
message de news: nqZwj.18136$
Windows XP Pro, Office 2003

Bonjour à tous,

J'ai un programme VBA Excel qui génère un nouveau document Word
(publipostage). L'utilisateur a ensuite le choix d'imprimer immédiatement
ce document ou de simplement consulter l'aperçu de ce document. Le
problème c'est que l'affichage de l'aperçu ne dure qu'une fraction de
seconde car la ligne suivante du code ferme le document et quitte Word.

De la même façon, si l'utilisateur choisit d'imprimer le document, je dois
ajouter une ligne de code pour faire une pause avant la fermeture sinon,
le
code pour fermer Word s'exécute avant que l'impression n'ait le temps de
commencer.

Je voudrais que dans le cas d'un aperçu, l'utilisateur puisse avoir le
temps d'examiner le document le temps voulu et que le code du programme
attende que l'aperçu soit fermé par l'utilisateur avant de poursuite avec
la fermeture du document Word.

Dans le cas ou l'utilisateur choisit d'imprimer, je souhaiterais pouvoir
recevoir confirmation de la part de l'imprimante que le document a bel et
bien été reçu et que le code peut procéder à la fermeture.

Est-ce possible?

Merci

Pierre






Avatar
MichDenis
Tu peux utiliser ces lignes comme façon pour retarder l'exécution
du code selon le nombre de secondes que tu désires.

5 représente 5 secondes
'--------------------
Dim Y As Double

Y = Timer + 5
Do
Loop Until Y <= Timer
'--------------------

Et si tu désires réellement arrêter (?) la macro le temps que le document actif
de word est en mode "PrintPreview", tu peux utiliser ce type de code :

'--------------------------------
Sub test()
With ActiveDocument
Do
.PrintPreview
DoEvents
Loop Until .Windows(1).View <> wdPrintPreview
End With
MsgBox "Bonjour" ' pour les besoins du test... à effacer !
End Sub
'--------------------------------




"Pierre Archambault" a écrit dans le message de news:
nqZwj.18136$
Windows XP Pro, Office 2003

Bonjour à tous,

J'ai un programme VBA Excel qui génère un nouveau document Word
(publipostage). L'utilisateur a ensuite le choix d'imprimer immédiatement ce
document ou de simplement consulter l'aperçu de ce document. Le problème
c'est que l'affichage de l'aperçu ne dure qu'une fraction de seconde car la
ligne suivante du code ferme le document et quitte Word.

De la même façon, si l'utilisateur choisit d'imprimer le document, je dois
ajouter une ligne de code pour faire une pause avant la fermeture sinon, le
code pour fermer Word s'exécute avant que l'impression n'ait le temps de
commencer.

Je voudrais que dans le cas d'un aperçu, l'utilisateur puisse avoir le temps
d'examiner le document le temps voulu et que le code du programme attende
que l'aperçu soit fermé par l'utilisateur avant de poursuite avec la
fermeture du document Word.

Dans le cas ou l'utilisateur choisit d'imprimer, je souhaiterais pouvoir
recevoir confirmation de la part de l'imprimante que le document a bel et
bien été reçu et que le code peut procéder à la fermeture.

Est-ce possible?

Merci

Pierre
Avatar
Pierre Archambault
Salut LSteph,

Excuse-moi si je n'ai pas donné de retour mais je ne crois pas avoir eu
quelque question ou proposition que ce soit; en tout cas, je n'ai rien vu de
cela, tu es le premier à t'intéresser. Je t'en remercie d'ailleurs

Voilà le code qui fait l'impression :

'J'exporte des données dans un classeur Excel
Call CréerSource

'Routine qui crée une occurence de Word et un nouveau document
Call GénérerÉtiquettes

'oApp: (Nom de l'objet Application Word )
oApp.PrintOut Copies:=NbreCopies, Collate:=True

'Délai accordé pour permettre à l'imprimante de gober le tout
Application.Wait Now + TimeValue("0:0:03")

'Fermer les documents et quitter (oDoc: Objet Document Word)
oDoc.Close False
oApp.NormalTemplate.Saved = True
oApp.Quit False

'Supprimer le fichier temporaire
Kill Chemin & FichierSource & ".xls"

Et maintenant le code pour l'aperçu :

Call CréerSource
Call GénérerÉtiquettes

'Cacher le UserForm actuellement affiché
Me.Hide

'Rendre Word visible
oApp.Visible = True

'Afficher l'aperçu
oApp.ActiveDocument.PrintPreview

'Délai
Application.Wait Now + TimeValue("0:0:03")

'Fermer les documents et quitter
oDoc.Close False
oApp.NormalTemplate.Saved = True
oApp.Quit False

'Supprimer le fichier temporaire
Kill Chemin & FichierSource & ".xls"

'Réafficher le UserForm
Me.Show

Voilà pour l'essentiel, je te fais grâce des centaines de lignes de code qui
composent les procédures. Les variables ont des noms qui décrivent assez
bien les valeurs qu'elles représentent.

Merci pour ta patience.

Pierre




"LSteph" a écrit dans le message de news:

Bonsoir Pierre,
voici 3 fois que tu racontes la même histoire sans donner de retour aux
propositions ou questions.

Alors au cas où, je repose cette question qui permettrait d'y voir plus
clair:
J'ai un programme VBA Excel qui génère un nouveau document Word

c'est quoi dans ta macro qui fait tout ça?



(parceque normalement l'aperçu doit te laisser le temps d'y voir!)

...sinon à la prochaine.

;-)

--
lSteph

Windows XP Pro, Office 2003

Bonjour à tous,

J'ai un programme VBA Excel qui génère un nouveau document Word
(publipostage). L'utilisateur a ensuite le choix d'imprimer immédiatement
ce document ou de simplement consulter l'aperçu de ce document. Le
problème c'est que l'affichage de l'aperçu ne dure qu'une fraction de
seconde car la ligne suivante du code ferme le document et quitte Word.

De la même façon, si l'utilisateur choisit d'imprimer le document, je
dois ajouter une ligne de code pour faire une pause avant la fermeture
sinon, le
code pour fermer Word s'exécute avant que l'impression n'ait le temps de
commencer.

Je voudrais que dans le cas d'un aperçu, l'utilisateur puisse avoir le
temps d'examiner le document le temps voulu et que le code du programme
attende que l'aperçu soit fermé par l'utilisateur avant de poursuite avec
la fermeture du document Word.

Dans le cas ou l'utilisateur choisit d'imprimer, je souhaiterais pouvoir
recevoir confirmation de la part de l'imprimante que le document a bel et
bien été reçu et que le code peut procéder à la fermeture.

Est-ce possible?

Merci

Pierre








Avatar
LSteph
Bonjour Piere,

Voilà pour l'essentiel, je te fais grâce des centaines de lignes de code
(je ne voyais pas cela ainsi et je supposais que tu utilisais SendKeys)


A priori j'essaierai de glisser un DoEvents juste après le printpreview

cela, tu es le premier à t'intéresser
C'est curieux en effet, essaie peut-être réinitialiser le groupe dans

OE, outre ma question en réponse à ton post du 21

voici un lien vers les réponses de
Jacquouille, Youky et Misange
http://groups.google.com/group/microsoft.public.fr.excel/browse_thread/thread/ada1d339bf6fc182/0ee3e870ce1a1a36?lnk=gst&q=archambault#0ee3e870ce1a1a36

Sinon maintenant tu devrais aussi voir que
tu as d'autres réponses sur ce fil.

@+

--
lSteph