Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne
comprends pourquoi.
[copie code on]
Sub RectoVerso()
'Macro créée par Petit Denis'
'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ",
vbYesNo, " Recto-Verso ")
If reponse1 = vbYes Then
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _
wdPrintOddPagesOnly, Collate:=True, Background:=True,
PrintToFile:=False, _
PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Else: GoTo fin
End If
reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ")
If reponse2 = vbYes Then
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _
wdPrintEvenPagesOnly, Collate:=True, Background:=True,
PrintToFile:=False _
, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Else: GoTo fin
End If
fin:
End Sub
[copie code off]
La seconde MsgBox s'affiche immédiatement (trop tôt) avant que l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ... si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire :
1) impression des pages impaires suite à la première MsgBox
2) temporisation
3) retournement de pages
4) impression des pages paires à la suite de la réponse de la seconde MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu
avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières
Note : je sais que je peux faire cela en quelques clics de souris sans
macro, mais j'aime bien le côté petit bouton unique qui va faire le travail
pour moi. Et puis le vba avec des exemples simples ça permet de progresser,
non ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Corona
Bonjour, Pour répondre à ta dernière question, les arguments étant facultatifs tu peux parfaitement écrire tout simplement : ActiveDocument.PrintOut PageType:=wdPrintOddPagesOnly ' Pour impaire ActiveDocument.PrintOut PageType:=wdPrintEvenPagesOnly ' Pour paire Pour le reste, effectivement les documents ne s'impriment pas tant que l'on n'a pas quitté la macro et j'avoue ne pas comprendre. Philippe
"Lasperches Denis" a écrit dans le message de news:%
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne comprends pourquoi.
[copie code on] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintOddPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse, _ PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ") If reponse2 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintEvenPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse _ , PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If fin: End Sub [copie code off] La seconde MsgBox s'affiche immédiatement (trop tôt) avant que l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ... si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire : 1) impression des pages impaires suite à la première MsgBox 2) temporisation 3) retournement de pages 4) impression des pages paires à la suite de la réponse de la seconde MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières Note : je sais que je peux faire cela en quelques clics de souris sans macro, mais j'aime bien le côté petit bouton unique qui va faire le travail
pour moi. Et puis le vba avec des exemples simples ça permet de progresser,
non ?
-- Petit Denis
Bonjour,
Pour répondre à ta dernière question, les arguments étant facultatifs tu
peux parfaitement écrire tout simplement :
ActiveDocument.PrintOut PageType:=wdPrintOddPagesOnly ' Pour impaire
ActiveDocument.PrintOut PageType:=wdPrintEvenPagesOnly ' Pour paire
Pour le reste, effectivement les documents ne s'impriment pas tant que
l'on n'a pas quitté la macro et j'avoue ne pas comprendre.
Philippe
"Lasperches Denis" <petitdenis.lasperches@libre.fr> a écrit dans le message
de news:%23PaHlOX3EHA.3316@tk2msftngp13.phx.gbl...
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne
comprends pourquoi.
[copie code on]
Sub RectoVerso()
'Macro créée par Petit Denis'
'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ",
vbYesNo, " Recto-Verso ")
If reponse1 = vbYes Then
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _
wdPrintOddPagesOnly, Collate:=True, Background:=True,
PrintToFile:úlse, _
PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Else: GoTo fin
End If
reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante
"
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation
des
feuilles ")
If reponse2 = vbYes Then
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _
wdPrintEvenPagesOnly, Collate:=True, Background:=True,
PrintToFile:úlse _
, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Else: GoTo fin
End If
fin:
End Sub
[copie code off]
La seconde MsgBox s'affiche immédiatement (trop tôt) avant que
l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ...
si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire :
1) impression des pages impaires suite à la première MsgBox
2) temporisation
3) retournement de pages
4) impression des pages paires à la suite de la réponse de la seconde
MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu
avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières
Note : je sais que je peux faire cela en quelques clics de souris sans
macro, mais j'aime bien le côté petit bouton unique qui va faire le
travail
pour moi. Et puis le vba avec des exemples simples ça permet de
progresser,
Bonjour, Pour répondre à ta dernière question, les arguments étant facultatifs tu peux parfaitement écrire tout simplement : ActiveDocument.PrintOut PageType:=wdPrintOddPagesOnly ' Pour impaire ActiveDocument.PrintOut PageType:=wdPrintEvenPagesOnly ' Pour paire Pour le reste, effectivement les documents ne s'impriment pas tant que l'on n'a pas quitté la macro et j'avoue ne pas comprendre. Philippe
"Lasperches Denis" a écrit dans le message de news:%
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne comprends pourquoi.
[copie code on] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintOddPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse, _ PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ") If reponse2 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintEvenPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse _ , PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If fin: End Sub [copie code off] La seconde MsgBox s'affiche immédiatement (trop tôt) avant que l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ... si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire : 1) impression des pages impaires suite à la première MsgBox 2) temporisation 3) retournement de pages 4) impression des pages paires à la suite de la réponse de la seconde MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières Note : je sais que je peux faire cela en quelques clics de souris sans macro, mais j'aime bien le côté petit bouton unique qui va faire le travail
pour moi. Et puis le vba avec des exemples simples ça permet de progresser,
non ?
-- Petit Denis
Corona
Re, Voilà, j'ai trouvé. Il faut simplement enlevé l'impression en arrière plan.
ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintEvenPagesOnly Philippe
"Lasperches Denis" a écrit dans le message de news:%
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne comprends pourquoi.
[copie code on] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintOddPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse, _ PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ") If reponse2 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintEvenPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse _ , PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If fin: End Sub [copie code off] La seconde MsgBox s'affiche immédiatement (trop tôt) avant que l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ... si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire : 1) impression des pages impaires suite à la première MsgBox 2) temporisation 3) retournement de pages 4) impression des pages paires à la suite de la réponse de la seconde MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières Note : je sais que je peux faire cela en quelques clics de souris sans macro, mais j'aime bien le côté petit bouton unique qui va faire le travail
pour moi. Et puis le vba avec des exemples simples ça permet de progresser,
non ?
-- Petit Denis
Re,
Voilà, j'ai trouvé.
Il faut simplement enlevé l'impression en arrière plan.
ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly
ActiveDocument.PrintOut Background:úlse,
PageType:=wdPrintEvenPagesOnly
Philippe
"Lasperches Denis" <petitdenis.lasperches@libre.fr> a écrit dans le message
de news:%23PaHlOX3EHA.3316@tk2msftngp13.phx.gbl...
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne
comprends pourquoi.
[copie code on]
Sub RectoVerso()
'Macro créée par Petit Denis'
'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ",
vbYesNo, " Recto-Verso ")
If reponse1 = vbYes Then
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _
wdPrintOddPagesOnly, Collate:=True, Background:=True,
PrintToFile:úlse, _
PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Else: GoTo fin
End If
reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante
"
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation
des
feuilles ")
If reponse2 = vbYes Then
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _
wdPrintEvenPagesOnly, Collate:=True, Background:=True,
PrintToFile:úlse _
, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Else: GoTo fin
End If
fin:
End Sub
[copie code off]
La seconde MsgBox s'affiche immédiatement (trop tôt) avant que
l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ...
si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire :
1) impression des pages impaires suite à la première MsgBox
2) temporisation
3) retournement de pages
4) impression des pages paires à la suite de la réponse de la seconde
MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu
avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières
Note : je sais que je peux faire cela en quelques clics de souris sans
macro, mais j'aime bien le côté petit bouton unique qui va faire le
travail
pour moi. Et puis le vba avec des exemples simples ça permet de
progresser,
Re, Voilà, j'ai trouvé. Il faut simplement enlevé l'impression en arrière plan.
ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintEvenPagesOnly Philippe
"Lasperches Denis" a écrit dans le message de news:%
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne comprends pourquoi.
[copie code on] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintOddPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse, _ PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ") If reponse2 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintEvenPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse _ , PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If fin: End Sub [copie code off] La seconde MsgBox s'affiche immédiatement (trop tôt) avant que l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ... si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire : 1) impression des pages impaires suite à la première MsgBox 2) temporisation 3) retournement de pages 4) impression des pages paires à la suite de la réponse de la seconde MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières Note : je sais que je peux faire cela en quelques clics de souris sans macro, mais j'aime bien le côté petit bouton unique qui va faire le travail
pour moi. Et puis le vba avec des exemples simples ça permet de progresser,
non ?
-- Petit Denis
Dédé
Salut Denis !
J'ai pas vriament une solution à ton code VBA mais pourquoi ne pas simplement utiliser les options d'impression de le fenêtre d'impression ? C'est ce que je fais. Impresssion des pages impaires, retournage des feuilles, impression des pages paires ...
Autrement, ce que je peux te conseiller, c'est une petit logiciel qui fait beaucoup plus que ça et qui se nomme FinePrint ... Y a vraiment plein d'autre solution qui sont intégrée dans ce logiciel et ça print du tonnerre :-))
Dans l'espoir d'avoir pu te donner une piste ..
Salutations Dédé
"Lasperches Denis" a écrit dans le message de news:%
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne comprends pourquoi.
[copie code on] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintOddPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse, _ PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ") If reponse2 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintEvenPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse _ , PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If fin: End Sub [copie code off] La seconde MsgBox s'affiche immédiatement (trop tôt) avant que l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ... si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire : 1) impression des pages impaires suite à la première MsgBox 2) temporisation 3) retournement de pages 4) impression des pages paires à la suite de la réponse de la seconde MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières Note : je sais que je peux faire cela en quelques clics de souris sans macro, mais j'aime bien le côté petit bouton unique qui va faire le travail
pour moi. Et puis le vba avec des exemples simples ça permet de progresser,
non ?
-- Petit Denis
Salut Denis !
J'ai pas vriament une solution à ton code VBA mais pourquoi ne pas
simplement utiliser les options d'impression de le fenêtre d'impression ?
C'est ce que je fais. Impresssion des pages impaires, retournage des
feuilles, impression des pages paires ...
Autrement, ce que je peux te conseiller, c'est une petit logiciel qui fait
beaucoup plus que ça et qui se nomme FinePrint ... Y a vraiment plein
d'autre solution qui sont intégrée dans ce logiciel et ça print du tonnerre
:-))
Dans l'espoir d'avoir pu te donner une piste ..
Salutations
Dédé
"Lasperches Denis" <petitdenis.lasperches@libre.fr> a écrit dans le message
de news:%23PaHlOX3EHA.3316@tk2msftngp13.phx.gbl...
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne
comprends pourquoi.
[copie code on]
Sub RectoVerso()
'Macro créée par Petit Denis'
'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ",
vbYesNo, " Recto-Verso ")
If reponse1 = vbYes Then
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _
wdPrintOddPagesOnly, Collate:=True, Background:=True,
PrintToFile:úlse, _
PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Else: GoTo fin
End If
reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante
"
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation
des
feuilles ")
If reponse2 = vbYes Then
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _
wdPrintEvenPagesOnly, Collate:=True, Background:=True,
PrintToFile:úlse _
, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Else: GoTo fin
End If
fin:
End Sub
[copie code off]
La seconde MsgBox s'affiche immédiatement (trop tôt) avant que
l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ...
si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire :
1) impression des pages impaires suite à la première MsgBox
2) temporisation
3) retournement de pages
4) impression des pages paires à la suite de la réponse de la seconde
MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu
avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières
Note : je sais que je peux faire cela en quelques clics de souris sans
macro, mais j'aime bien le côté petit bouton unique qui va faire le
travail
pour moi. Et puis le vba avec des exemples simples ça permet de
progresser,
J'ai pas vriament une solution à ton code VBA mais pourquoi ne pas simplement utiliser les options d'impression de le fenêtre d'impression ? C'est ce que je fais. Impresssion des pages impaires, retournage des feuilles, impression des pages paires ...
Autrement, ce que je peux te conseiller, c'est une petit logiciel qui fait beaucoup plus que ça et qui se nomme FinePrint ... Y a vraiment plein d'autre solution qui sont intégrée dans ce logiciel et ça print du tonnerre :-))
Dans l'espoir d'avoir pu te donner une piste ..
Salutations Dédé
"Lasperches Denis" a écrit dans le message de news:%
Bonsoir les AMIS !
Voilà j'ai macroté mais cela ne donne pas ce que j'attends, et je ne comprends pourquoi.
[copie code on] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintOddPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse, _ PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ") If reponse2 = vbYes Then Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:= _ wdPrintEvenPagesOnly, Collate:=True, Background:=True, PrintToFile:úlse _ , PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _ PrintZoomPaperHeight:=0 Else: GoTo fin End If fin: End Sub [copie code off] La seconde MsgBox s'affiche immédiatement (trop tôt) avant que l'impression
des pages ne soit terminée (en fait l'impression ne démarre pas) sauf ... si
je réponds à la seconde MsgBox.
L'idée de départ aurait été de faire : 1) impression des pages impaires suite à la première MsgBox 2) temporisation 3) retournement de pages 4) impression des pages paires à la suite de la réponse de la seconde MsgBox
Enfin une dernière question : le code Application.PrintOut... est obtenu avec l'enregistreur ; tout est vraiment indispensable ?
Merci pour vos lumières Note : je sais que je peux faire cela en quelques clics de souris sans macro, mais j'aime bien le côté petit bouton unique qui va faire le travail
pour moi. Et puis le vba avec des exemples simples ça permet de progresser,
non ?
-- Petit Denis
Lasperches Denis
Salut Dédé wrote:
J'ai pas vriament une solution à ton code VBA mais pourquoi ne pas simplement utiliser les options d'impression de le fenêtre d'impression ? C'est ce que je fais. Impresssion des pages impaires, retournage des feuilles, impression des pages paires ...
Toute l'idée était d'éviter de passer plusieurs fois par la fenêtre d'impression... Je suis encore grand débutant VBA et tant pis pour mes points AMIS : mon but est de comprendre comment ça marche même si je réinvente la roue. Les exemples simples et souvent superfétatoires pour me guider ; je me vois mal me lancer dans des trucs bien compliqués sans maîtriser les bases.
Autrement, ce que je peux te conseiller, c'est une petit logiciel qui fait beaucoup plus que ça et qui se nomme FinePrint ... Y a vraiment plein d'autre solution qui sont intégrée dans ce logiciel et ça print du tonnerre :-))
Je regarderai ça l'occasion.
Je vais tester la voie de Corona que je remercie vivement d'avance. -- Petit Denis
Salut
Dédé wrote:
J'ai pas vriament une solution à ton code VBA mais pourquoi ne pas
simplement utiliser les options d'impression de le fenêtre
d'impression ? C'est ce que je fais. Impresssion des pages impaires,
retournage des feuilles, impression des pages paires ...
Toute l'idée était d'éviter de passer plusieurs fois par la fenêtre
d'impression...
Je suis encore grand débutant VBA et tant pis pour mes points AMIS : mon but
est de comprendre comment ça marche même si je réinvente la roue.
Les exemples simples et souvent superfétatoires pour me guider ; je me vois
mal me lancer dans des trucs bien compliqués sans maîtriser les bases.
Autrement, ce que je peux te conseiller, c'est une petit logiciel qui
fait beaucoup plus que ça et qui se nomme FinePrint ... Y a vraiment
plein d'autre solution qui sont intégrée dans ce logiciel et ça print
du tonnerre :-))
Je regarderai ça l'occasion.
Je vais tester la voie de Corona que je remercie vivement d'avance.
--
Petit Denis
J'ai pas vriament une solution à ton code VBA mais pourquoi ne pas simplement utiliser les options d'impression de le fenêtre d'impression ? C'est ce que je fais. Impresssion des pages impaires, retournage des feuilles, impression des pages paires ...
Toute l'idée était d'éviter de passer plusieurs fois par la fenêtre d'impression... Je suis encore grand débutant VBA et tant pis pour mes points AMIS : mon but est de comprendre comment ça marche même si je réinvente la roue. Les exemples simples et souvent superfétatoires pour me guider ; je me vois mal me lancer dans des trucs bien compliqués sans maîtriser les bases.
Autrement, ce que je peux te conseiller, c'est une petit logiciel qui fait beaucoup plus que ça et qui se nomme FinePrint ... Y a vraiment plein d'autre solution qui sont intégrée dans ce logiciel et ça print du tonnerre :-))
Je regarderai ça l'occasion.
Je vais tester la voie de Corona que je remercie vivement d'avance. -- Petit Denis
Lasperches Denis
Salut Corona wrote:
Re, Voilà, j'ai trouvé. Il faut simplement enlevé l'impression en arrière plan.
Simplement ! Merci, c'était ça. Reste plus qu'à faire une pause.
J'ai fait donc cela qui me convient bien ; fallait aussi penser à imprimer dans l'ordre inverse une partie des pages (j'ai choisi les impaires pour revenir à l'option de base chez moi qui est l'ordre normal).
[Copie Code On] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Options.PrintReverse = True ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly Else: GoTo fin End If *** reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante " & vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des feuilles ") If reponse2 = vbYes Then Options.PrintReverse = False ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintEvenPagesOnly Else: GoTo fin End If fin: End Sub [Copie Code Off]
Je suppose que la pause doit se mettre au niveau de *** Comme l'aide plante en ce moment, j'ai pas eu accès à wdKeyPause... -- Petit Denis Macro à la Moutarde de Dijon lol
Salut
Corona wrote:
Re,
Voilà, j'ai trouvé.
Il faut simplement enlevé l'impression en arrière plan.
Simplement ! Merci, c'était ça. Reste plus qu'à faire une pause.
J'ai fait donc cela qui me convient bien ; fallait aussi penser à imprimer
dans l'ordre inverse une partie des pages (j'ai choisi les impaires pour
revenir à l'option de base chez moi qui est l'ordre normal).
[Copie Code On]
Sub RectoVerso()
'Macro créée par Petit Denis'
'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ",
vbYesNo, " Recto-Verso ")
If reponse1 = vbYes Then
Options.PrintReverse = True
ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly
Else: GoTo fin
End If
***
reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ")
If reponse2 = vbYes Then
Options.PrintReverse = False
ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintEvenPagesOnly
Else: GoTo fin
End If
fin:
End Sub
[Copie Code Off]
Je suppose que la pause doit se mettre au niveau de ***
Comme l'aide plante en ce moment, j'ai pas eu accès à wdKeyPause...
--
Petit Denis Macro à la Moutarde de Dijon lol
Re, Voilà, j'ai trouvé. Il faut simplement enlevé l'impression en arrière plan.
Simplement ! Merci, c'était ça. Reste plus qu'à faire une pause.
J'ai fait donc cela qui me convient bien ; fallait aussi penser à imprimer dans l'ordre inverse une partie des pages (j'ai choisi les impaires pour revenir à l'option de base chez moi qui est l'ordre normal).
[Copie Code On] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Options.PrintReverse = True ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly Else: GoTo fin End If *** reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante " & vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des feuilles ") If reponse2 = vbYes Then Options.PrintReverse = False ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintEvenPagesOnly Else: GoTo fin End If fin: End Sub [Copie Code Off]
Je suppose que la pause doit se mettre au niveau de *** Comme l'aide plante en ce moment, j'ai pas eu accès à wdKeyPause... -- Petit Denis Macro à la Moutarde de Dijon lol
Corona
Bonsoir Denis, Pour la pause. Je suppose que tu fais référence au fait que le 2ème message apparait alors que l'imprimante n'a pas terminé son impression ou même ne l'a pas encore commencer. Ce n'est pas vraiment VBA qui est en cause. C'est dû au fait que le programme a envoyé l'impression vers l'imprimante et passe ensuite à la phase suivante (dans ton cas - le 2ème message qui demande de retourner le papier). Le spooler se chargeant de ce travail le programme considère que le travail d'impression est terminé. Si tu veux absolument mettre une pause, tu peux utiliser une instruction qui n'est pas documenté dans VBA et qui est une API. 1) D'abord placer la déclaration en début de module Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 2) Insérer à l'endroit de '***' l'instruction sleep Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -) Philippe
"Lasperches Denis" a écrit dans le message de news:
Salut Corona wrote:
Re, Voilà, j'ai trouvé. Il faut simplement enlevé l'impression en arrière plan.
Simplement ! Merci, c'était ça. Reste plus qu'à faire une pause.
J'ai fait donc cela qui me convient bien ; fallait aussi penser à imprimer dans l'ordre inverse une partie des pages (j'ai choisi les impaires pour revenir à l'option de base chez moi qui est l'ordre normal).
[Copie Code On] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Options.PrintReverse = True ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly Else: GoTo fin End If *** reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ") If reponse2 = vbYes Then Options.PrintReverse = False ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintEvenPagesOnly Else: GoTo fin End If fin: End Sub [Copie Code Off]
Je suppose que la pause doit se mettre au niveau de *** Comme l'aide plante en ce moment, j'ai pas eu accès à wdKeyPause... -- Petit Denis Macro à la Moutarde de Dijon lol
Bonsoir Denis,
Pour la pause.
Je suppose que tu fais référence au fait que le 2ème message apparait
alors que l'imprimante n'a pas terminé son impression ou même ne l'a pas
encore commencer.
Ce n'est pas vraiment VBA qui est en cause. C'est dû au fait que le
programme a envoyé l'impression vers l'imprimante et passe ensuite à la
phase suivante (dans ton cas - le 2ème message qui demande de retourner le
papier). Le spooler se chargeant de ce travail le programme considère que le
travail d'impression est terminé.
Si tu veux absolument mettre une pause, tu peux utiliser une instruction
qui n'est pas documenté dans VBA et qui est une API.
1) D'abord placer la déclaration en début de module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
2) Insérer à l'endroit de '***' l'instruction sleep
Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -)
Philippe
"Lasperches Denis" <petitdenis.lasperches@libre.fr> a écrit dans le message
de news:eQOXYLi3EHA.3120@TK2MSFTNGP12.phx.gbl...
Salut
Corona wrote:
Re,
Voilà, j'ai trouvé.
Il faut simplement enlevé l'impression en arrière plan.
Simplement ! Merci, c'était ça. Reste plus qu'à faire une pause.
J'ai fait donc cela qui me convient bien ; fallait aussi penser à imprimer
dans l'ordre inverse une partie des pages (j'ai choisi les impaires pour
revenir à l'option de base chez moi qui est l'ordre normal).
[Copie Code On]
Sub RectoVerso()
'Macro créée par Petit Denis'
'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ",
vbYesNo, " Recto-Verso ")
If reponse1 = vbYes Then
Options.PrintReverse = True
ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly
Else: GoTo fin
End If
***
reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante
"
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation
des
feuilles ")
If reponse2 = vbYes Then
Options.PrintReverse = False
ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintEvenPagesOnly
Else: GoTo fin
End If
fin:
End Sub
[Copie Code Off]
Je suppose que la pause doit se mettre au niveau de ***
Comme l'aide plante en ce moment, j'ai pas eu accès à wdKeyPause...
--
Petit Denis Macro à la Moutarde de Dijon lol
Bonsoir Denis, Pour la pause. Je suppose que tu fais référence au fait que le 2ème message apparait alors que l'imprimante n'a pas terminé son impression ou même ne l'a pas encore commencer. Ce n'est pas vraiment VBA qui est en cause. C'est dû au fait que le programme a envoyé l'impression vers l'imprimante et passe ensuite à la phase suivante (dans ton cas - le 2ème message qui demande de retourner le papier). Le spooler se chargeant de ce travail le programme considère que le travail d'impression est terminé. Si tu veux absolument mettre une pause, tu peux utiliser une instruction qui n'est pas documenté dans VBA et qui est une API. 1) D'abord placer la déclaration en début de module Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 2) Insérer à l'endroit de '***' l'instruction sleep Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -) Philippe
"Lasperches Denis" a écrit dans le message de news:
Salut Corona wrote:
Re, Voilà, j'ai trouvé. Il faut simplement enlevé l'impression en arrière plan.
Simplement ! Merci, c'était ça. Reste plus qu'à faire une pause.
J'ai fait donc cela qui me convient bien ; fallait aussi penser à imprimer dans l'ordre inverse une partie des pages (j'ai choisi les impaires pour revenir à l'option de base chez moi qui est l'ordre normal).
[Copie Code On] Sub RectoVerso() 'Macro créée par Petit Denis' 'le 08 décembre 2004'
reponse1 = MsgBox(" Vous allez imprimer " & vbCr & " les pages impaires ", vbYesNo, " Recto-Verso ") If reponse1 = vbYes Then Options.PrintReverse = True ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintOddPagesOnly Else: GoTo fin End If *** reponse2 = MsgBox(" Remettre les feuilles dans le chargeur de l'imprimante "
& vbCr & "Vous allez imprimer les pages paires", vbYesNo, " Préparation des
feuilles ") If reponse2 = vbYes Then Options.PrintReverse = False ActiveDocument.PrintOut Background:úlse, PageType:=wdPrintEvenPagesOnly Else: GoTo fin End If fin: End Sub [Copie Code Off]
Je suppose que la pause doit se mettre au niveau de *** Comme l'aide plante en ce moment, j'ai pas eu accès à wdKeyPause... -- Petit Denis Macro à la Moutarde de Dijon lol
Lasperches Denis
Salut et merci Corona
Bonsoir Denis, Pour la pause. Je suppose que tu fais référence au fait que le 2ème message apparait alors que l'imprimante n'a pas terminé son impression ou même ne l'a pas encore commencer. Ce n'est pas vraiment VBA qui est en cause. C'est dû au fait que le programme a envoyé l'impression vers l'imprimante et passe ensuite à la phase suivante (dans ton cas - le 2ème message qui demande de retourner le papier). Le spooler se chargeant de ce travail le programme considère que le travail d'impression est terminé. Si tu veux absolument mettre une pause, tu peux utiliser une instruction qui n'est pas documenté dans VBA et qui est une API. 1) D'abord placer la déclaration en début de module Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 2) Insérer à l'endroit de '***' l'instruction sleep Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -) Philippe
Je teste cela, c'est exactement ce que je recherche. La nuit ayant porté conseil , j'avais pensé rajouter une MsgBox à cliquer juste après la sortie des pages impaires... Je testerai aussi...
-- Petit Denis bêta & testeur
Salut et merci Corona
Bonsoir Denis,
Pour la pause.
Je suppose que tu fais référence au fait que le 2ème message
apparait alors que l'imprimante n'a pas terminé son impression ou
même ne l'a pas encore commencer.
Ce n'est pas vraiment VBA qui est en cause. C'est dû au fait que le
programme a envoyé l'impression vers l'imprimante et passe ensuite à
la phase suivante (dans ton cas - le 2ème message qui demande de
retourner le papier). Le spooler se chargeant de ce travail le
programme considère que le travail d'impression est terminé.
Si tu veux absolument mettre une pause, tu peux utiliser une
instruction qui n'est pas documenté dans VBA et qui est une API.
1) D'abord placer la déclaration en début de module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
2) Insérer à l'endroit de '***' l'instruction sleep
Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -)
Philippe
Je teste cela, c'est exactement ce que je recherche.
La nuit ayant porté conseil , j'avais pensé rajouter une MsgBox à cliquer
juste après la sortie des pages impaires...
Je testerai aussi...
Bonsoir Denis, Pour la pause. Je suppose que tu fais référence au fait que le 2ème message apparait alors que l'imprimante n'a pas terminé son impression ou même ne l'a pas encore commencer. Ce n'est pas vraiment VBA qui est en cause. C'est dû au fait que le programme a envoyé l'impression vers l'imprimante et passe ensuite à la phase suivante (dans ton cas - le 2ème message qui demande de retourner le papier). Le spooler se chargeant de ce travail le programme considère que le travail d'impression est terminé. Si tu veux absolument mettre une pause, tu peux utiliser une instruction qui n'est pas documenté dans VBA et qui est une API. 1) D'abord placer la déclaration en début de module Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 2) Insérer à l'endroit de '***' l'instruction sleep Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -) Philippe
Je teste cela, c'est exactement ce que je recherche. La nuit ayant porté conseil , j'avais pensé rajouter une MsgBox à cliquer juste après la sortie des pages impaires... Je testerai aussi...
-- Petit Denis bêta & testeur
Lasperches Denis
Salut
1) D'abord placer la déclaration en début de module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 2) Insérer à l'endroit de '***' l'instruction sleep Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -) Philippe
Je teste cela, c'est exactement ce que je recherche. La nuit ayant porté conseil , j'avais pensé rajouter une MsgBox à cliquer juste après la sortie des pages impaires... Je testerai aussi...
Après quelques tatonnements : tout marche. La méthode sleep = temporisation fixe La méthode MsgBox = temporisation variable Merci encore Corona -- Petit Denis
Salut
1) D'abord placer la déclaration en début de module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
2) Insérer à l'endroit de '***' l'instruction sleep
Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -)
Philippe
Je teste cela, c'est exactement ce que je recherche.
La nuit ayant porté conseil , j'avais pensé rajouter une MsgBox à
cliquer juste après la sortie des pages impaires...
Je testerai aussi...
Après quelques tatonnements : tout marche.
La méthode sleep = temporisation fixe
La méthode MsgBox = temporisation variable
Merci encore Corona
--
Petit Denis
1) D'abord placer la déclaration en début de module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 2) Insérer à l'endroit de '***' l'instruction sleep Sleep(1000) (1000 représent 1 seconde - 1000 millisecondes -) Philippe
Je teste cela, c'est exactement ce que je recherche. La nuit ayant porté conseil , j'avais pensé rajouter une MsgBox à cliquer juste après la sortie des pages impaires... Je testerai aussi...
Après quelques tatonnements : tout marche. La méthode sleep = temporisation fixe La méthode MsgBox = temporisation variable Merci encore Corona -- Petit Denis