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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #5239331
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







Daniel.C
Le #5239321
Bonsoir.
Tu peux peut-être insérer un msgbox avant la ligne de code qui ferme word ?
Cordialement.
Daniel
"Pierre Archambault" 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






MichDenis
Le #5239151
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" 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
Pierre Archambault
Le #5239001
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"
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








LSteph
Le #5238911
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

Publicité
Poster une réponse
Anonyme