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

Fonction equivalent à l'expression pause

3 réponses
Avatar
Gilbert
Bonjour,
Existe t il une fonction permettant de faire une pause de 3 secondes par
exemple lors de l'éxécution de code.
(access 2002)

Le problème que j'ai à résoudre est le suivant :

je lance une impression de tous les documents word dont le chemin est dans
une table et qui sont classés dans un ordre précis.
Pour ce faire j'ouvre les documents un par un , imprime referme le document
word, ouvre le suivant, imprime....etc.
ça marche très bien sauf que voilà parfois il arrive que les documents ne
sortent pas dans l'ordre prédéfini alors que dans la table ils le sont bien.

Je soupsonne un mélange dans la queue (documents plus lourd les uns que les
autres...pas bien mis en évidence quand même).
Je souhaitais tenter un arrêt de quelques secondes (1,2.. je ne sais pas
encore) dans mon code pour que les documents aient le temps de s'ouvrir de
s'imprimer en parti avant de relancer le 2ème document. Ca me permettrai de
savoir si mon soupçon est justifié.

Merci pour vos tuyaux...
Gilbert

Le code utilisé est le suivant :
.....

Dim rst1 As New Recordset, i1 As Integer, StrLeChemin As String

rst1.ActiveConnection = CurrentProject.Connection

rst1.Open "TblImpressTmp", , adOpenKeyset, adLockOptimistic

Do Until rst1.EOF

StrLeChemin = rst1.Fields("LeChemin")

nbrcopie = rst1.Fields("NbrPageImp")

With objWord

.Visible = False

On Error GoTo suiteferme

Set Doc = .Documents.Add(StrLeChemin)

With Doc.Bookmarks

.Item("sigEtude").Range.Text = strEtude

.Item("sigProduit").Range.Text = strProduit

'.Item("sigDate").Range.Text = strDate

End With

End With

objWord.ActiveDocument.PrintOut _

copies:=nbrcopie


objWord.ActiveDocument.Close (False)

rst1.MoveNext

pause

Loop

suiteferme:

rst1.Close

objWord.Quit

Set rst1 = Nothing

Set rst = Nothing

Set Doc = Nothing

Set objWord = Nothing

......

3 réponses

Avatar
pgz
Bonjour,

Je te proposerais dans le cas que tu présentes, d'utiliser le timer d'un
formulaire, ce qui libère totalement les ressources de la machibe entre 2
commandes d'impression.

Toutes les 3 secondes tu auras un évènement qui te permettra de commander
l'impression du document suivant.

Bon courage,

--
pgz

"Ce qui se conçoit mal s''énonce péniblement et les mots pour le dire
arrivent péniblement. - dicomoche.net
_____________________________




Bonjour,
Existe t il une fonction permettant de faire une pause de 3 secondes par
exemple lors de l'éxécution de code.
(access 2002)

Le problème que j'ai à résoudre est le suivant :

je lance une impression de tous les documents word dont le chemin est dans
une table et qui sont classés dans un ordre précis.
Pour ce faire j'ouvre les documents un par un , imprime referme le document
word, ouvre le suivant, imprime....etc.
ça marche très bien sauf que voilà parfois il arrive que les documents ne
sortent pas dans l'ordre prédéfini alors que dans la table ils le sont bien.

Je soupsonne un mélange dans la queue (documents plus lourd les uns que les
autres...pas bien mis en évidence quand même).
Je souhaitais tenter un arrêt de quelques secondes (1,2.. je ne sais pas
encore) dans mon code pour que les documents aient le temps de s'ouvrir de
s'imprimer en parti avant de relancer le 2ème document. Ca me permettrai de
savoir si mon soupçon est justifié.

Merci pour vos tuyaux...
Gilbert

Le code utilisé est le suivant :
......

Dim rst1 As New Recordset, i1 As Integer, StrLeChemin As String

rst1.ActiveConnection = CurrentProject.Connection

rst1.Open "TblImpressTmp", , adOpenKeyset, adLockOptimistic

Do Until rst1.EOF

StrLeChemin = rst1.Fields("LeChemin")

nbrcopie = rst1.Fields("NbrPageImp")

With objWord

..Visible = False

On Error GoTo suiteferme

Set Doc = .Documents.Add(StrLeChemin)

With Doc.Bookmarks

..Item("sigEtude").Range.Text = strEtude

..Item("sigProduit").Range.Text = strProduit

'.Item("sigDate").Range.Text = strDate

End With

End With

objWord.ActiveDocument.PrintOut _

copies:=nbrcopie


objWord.ActiveDocument.Close (False)

rst1.MoveNext

pause

Loop

suiteferme:

rst1.Close

objWord.Quit

Set rst1 = Nothing

Set rst = Nothing

Set Doc = Nothing

Set objWord = Nothing

.......






Avatar
Raymond [mvp]
Bonjour.

Il est dommage que tu n'ais pas regardé l'aide du printout de word.

tu as indiqué:

objWord.ActiveDocument.PrintOut copies:=nbrcopie



et non

objWord.ActiveDocument.PrintOut copies:=nbrcopie Background:úlse



Background:úlse indique que l'exécution de la procédure doit attendre la
fin de l'impression du document dans word ( la fin de la mise en file
d'attente dans le spooler) et Background:=True (valeur par défaut) que
l'exécution se poursuive pendant l'impression du document dans Microsoft
Word.

voir toutes les option de printout sur :
http://officesystem.access.free.fr/vba/imprimer_doc.htm

--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
http://officesystem.access.free.fr/wiki/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j’en ai rien à coder, je me forme : les devoirs de vacances
http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99


"Gilbert" <[nospam] a écrit dans le message de news:
f7im3m$da8$
| Bonjour,
| Existe t il une fonction permettant de faire une pause de 3 secondes par
| exemple lors de l'éxécution de code.
| (access 2002)
|
| Le problème que j'ai à résoudre est le suivant :
|
| je lance une impression de tous les documents word dont le chemin est dans
| une table et qui sont classés dans un ordre précis.
| Pour ce faire j'ouvre les documents un par un , imprime referme le
document
| word, ouvre le suivant, imprime....etc.
| ça marche très bien sauf que voilà parfois il arrive que les documents ne
| sortent pas dans l'ordre prédéfini alors que dans la table ils le sont
bien.
|
| Je soupsonne un mélange dans la queue (documents plus lourd les uns que
les
| autres...pas bien mis en évidence quand même).
| Je souhaitais tenter un arrêt de quelques secondes (1,2.. je ne sais pas
| encore) dans mon code pour que les documents aient le temps de s'ouvrir de
| s'imprimer en parti avant de relancer le 2ème document. Ca me permettrai
de
| savoir si mon soupçon est justifié.
|
| Merci pour vos tuyaux...
| Gilbert
|
| Le code utilisé est le suivant :
| .....
|
| Dim rst1 As New Recordset, i1 As Integer, StrLeChemin As String
|
| rst1.ActiveConnection = CurrentProject.Connection
|
| rst1.Open "TblImpressTmp", , adOpenKeyset, adLockOptimistic
|
| Do Until rst1.EOF
|
| StrLeChemin = rst1.Fields("LeChemin")
|
| nbrcopie = rst1.Fields("NbrPageImp")
|
| With objWord
|
| .Visible = False
|
| On Error GoTo suiteferme
|
| Set Doc = .Documents.Add(StrLeChemin)
|
| With Doc.Bookmarks
|
| .Item("sigEtude").Range.Text = strEtude
|
| .Item("sigProduit").Range.Text = strProduit
|
| '.Item("sigDate").Range.Text = strDate
|
| End With
|
| End With
|
| objWord.ActiveDocument.PrintOut _
|
| copies:=nbrcopie
|
|
| objWord.ActiveDocument.Close (False)
|
| rst1.MoveNext
|
| pause
|
| Loop
|
| suiteferme:
|
| rst1.Close
|
| objWord.Quit
|
| Set rst1 = Nothing
|
| Set rst = Nothing
|
| Set Doc = Nothing
|
| Set objWord = Nothing
|
| ......
|
|
|


Avatar
Gilbert
Merci à toi Raymond...


Je vais essayer la solution proposée.

Et non je n'ai pas regardé l'aide du printout de word...
J'étais fixé sur un problème access...et je n'ai pas été voir plus loin que
le bout de mon nez.
Merci encore.

Gilbert


"Raymond [mvp]" a écrit dans le message
de news:
Bonjour.

Il est dommage que tu n'ais pas regardé l'aide du printout de word.

tu as indiqué:

objWord.ActiveDocument.PrintOut copies:=nbrcopie



et non

objWord.ActiveDocument.PrintOut copies:=nbrcopie Background:úlse



Background:úlse indique que l'exécution de la procédure doit attendre la
fin de l'impression du document dans word ( la fin de la mise en file
d'attente dans le spooler) et Background:=True (valeur par défaut) que
l'exécution se poursuive pendant l'impression du document dans Microsoft
Word.

voir toutes les option de printout sur :
http://officesystem.access.free.fr/vba/imprimer_doc.htm

--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
http://officesystem.access.free.fr/wiki/
Pour débuter sur le forum: http://www.mpfa.info/

Cet été, j'en ai rien à coder, je me forme : les devoirs de vacances
http://www.comscamp.com/Tracker/Redirect.ashx?linkidJd96883-a859-4212-b4a0-bce47c8e0d99


"Gilbert" <[nospam] a écrit dans le message de news:
f7im3m$da8$
| Bonjour,
| Existe t il une fonction permettant de faire une pause de 3 secondes par
| exemple lors de l'éxécution de code.
| (access 2002)
|
| Le problème que j'ai à résoudre est le suivant :
|
| je lance une impression de tous les documents word dont le chemin est
dans
| une table et qui sont classés dans un ordre précis.
| Pour ce faire j'ouvre les documents un par un , imprime referme le
document
| word, ouvre le suivant, imprime....etc.
| ça marche très bien sauf que voilà parfois il arrive que les documents
ne
| sortent pas dans l'ordre prédéfini alors que dans la table ils le sont
bien.
|
| Je soupsonne un mélange dans la queue (documents plus lourd les uns que
les
| autres...pas bien mis en évidence quand même).
| Je souhaitais tenter un arrêt de quelques secondes (1,2.. je ne sais pas
| encore) dans mon code pour que les documents aient le temps de s'ouvrir
de
| s'imprimer en parti avant de relancer le 2ème document. Ca me permettrai
de
| savoir si mon soupçon est justifié.
|
| Merci pour vos tuyaux...
| Gilbert
|
| Le code utilisé est le suivant :
| .....
|
| Dim rst1 As New Recordset, i1 As Integer, StrLeChemin As String
|
| rst1.ActiveConnection = CurrentProject.Connection
|
| rst1.Open "TblImpressTmp", , adOpenKeyset, adLockOptimistic
|
| Do Until rst1.EOF
|
| StrLeChemin = rst1.Fields("LeChemin")
|
| nbrcopie = rst1.Fields("NbrPageImp")
|
| With objWord
|
| .Visible = False
|
| On Error GoTo suiteferme
|
| Set Doc = .Documents.Add(StrLeChemin)
|
| With Doc.Bookmarks
|
| .Item("sigEtude").Range.Text = strEtude
|
| .Item("sigProduit").Range.Text = strProduit
|
| '.Item("sigDate").Range.Text = strDate
|
| End With
|
| End With
|
| objWord.ActiveDocument.PrintOut _
|
| copies:=nbrcopie
|
|
| objWord.ActiveDocument.Close (False)
|
| rst1.MoveNext
|
| pause
|
| Loop
|
| suiteferme:
|
| rst1.Close
|
| objWord.Quit
|
| Set rst1 = Nothing
|
| Set rst = Nothing
|
| Set Doc = Nothing
|
| Set objWord = Nothing
|
| ......
|
|
|