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

Problème avec l'impression recto - verso 16/01/2004

1 réponse
Avatar
CHTIOUI
Bonjour
En utilisant une macro sur Word XP qui permet l'impression=20
en recto-Verso avec un format livret.
Quand j'ex=E9cute la macro la premi=E8re fois, l'imprimante =20
sorte des pages blanches pour les pages paires du document,
alors qu'elle imprime les pages impaires.
Quand je r=E9ex=E9cute la macro une deusi=E8me fois, le document=20
est imprim=E9 normalement ( recto-verso en mode livret )
Voici le code de la proc=E9dure :

Public Sub Livretv1()
' Macro enregistr=E9e le 11/11/2003 par * * *=20
' imprime le document sous forme de livret
' pour imprimante imprimant les pages dans l'ordre inverse
' imprimante inverse : l'ordre des pages de la pile finale=20
est invers=E9
' utilise les fonctions zoom de l'impression WORD
Dim NbPages, NbFeuilles, i, Rep, delta As Integer
Dim CouplePage As String
NbPages =3D ActiveDocument.BuiltInDocumentProperties
(wdPropertyPages)
NbFeuilles =3D Int((NbPages + 3) / 4)
If NbFeuilles * 4 <> NbPages Then
delta =3D NbFeuilles * 4 - NbPages
Selection.EndKey Unit:=3DwdStory
For i =3D 0 To delta - 1
Selection.InsertBreak Type:=3DwdPageBreak
Next i
NbPages =3D NbPages + delta
End If
Rep =3D MsgBox("Impression recto-verso de " & _
NbFeuilles & " pages ?", vbYesNo, "Livret")
If Rep =3D vbYes Then
CouplePage =3D ""
For i =3D 0 To NbFeuilles - 1
CouplePage =3D CouplePage + Str((4 *=20
NbFeuilles) - (2 * i)) & ";" & Str(2 * i + 1)
If i < NbFeuilles - 1 Then
CouplePage =3D CouplePage & ";"
End If
Next i
Impr2pages (CouplePage)
Rep =3D MsgBox(" retourner les feuilles et appuyer=20
sur OK", vbOKOnly)
CouplePage =3D ""
For i =3D 0 To NbFeuilles - 1
CouplePage =3D CouplePage + Str(2 * i + 2) & ";"=20
& Str((4 * NbFeuilles) - (2 * i) - 1)
If i < NbFeuilles - 1 Then
CouplePage =3D CouplePage & ";"
End If
Next i
Impr2pages (CouplePage)
End If
End Sub


Sub Impr2pages(MesPages As String)
' fonction imprime deux pages
' =E0 adapter selon son format de papier
Application.PrintOut FileName:=3D"",=20
Range:=3DwdPrintRangeOfPages, Item:=3DwdPrintDocumentContent,=20
Copies:=3D1, pages:=3DMesPages, PageType:=3DwdPrintAllPages,=20
Collate:=3DTrue, Background:=3DFalse, PrintToFile:=3DFalse,=20
PrintZoomColumn:=3D2, PrintZoomRow:=3D1,=20
PrintZoomPaperWidth:=3D11907, PrintZoomPaperHeight:=3D16839

End Sub

Public Sub Livretv0()
' Macro enregistr=E9e le 11/11/2003 par * * *=20
' imprime le document sous forme de livret
' pour imprimante imprimant les pages dans l'ordre inverse
' imprimante inverse : l'ordre des pages de la pile finale=20
est invers=E9
' utilise les fonctions zoom de l'impression WORD
Dim NbPages, NbFeuilles, i, Rep, delta As Integer
Dim CouplePage As String
NbPages =3D ActiveDocument.BuiltInDocumentProperties
(wdPropertyPages)
NbFeuilles =3D Int((NbPages + 3) / 4)
If NbFeuilles * 4 <> NbPages Then
delta =3D NbFeuilles * 4 - NbPages
Selection.EndKey Unit:=3DwdStory
For i =3D 0 To delta - 1
Selection.InsertBreak Type:=3DwdPageBreak
Next i
NbPages =3D NbPages + delta
End If
Rep =3D MsgBox("Impression recto-verso de " & _
NbFeuilles & " pages ?", vbYesNo, "Livret")
If Rep =3D vbYes Then
CouplePage =3D ""
For i =3D 0 To NbFeuilles - 1
CouplePage =3D Str((4 * NbFeuilles) - (2 *=20
i)) & ";" & Str(2 * i + 1)
Impr2pages (CouplePage)
Next i
Rep =3D MsgBox(" retourner les feuilles et appuyer=20
sur OK", vbOKOnly)
CouplePage =3D ""
For i =3D 0 To NbFeuilles - 1
CouplePage =3D Str(2 * i + 2) & ";" & Str((4 *=20
NbFeuilles) - (2 * i) - 1)
Impr2pages (CouplePage)
Next i
=20
End If
End Sub

Public Sub Livretv2()
' Macro enregistr=E9e le 11/11/2003 par * * *=20
' imprime le document sous forme de livret
' pour imprimante imprimant les pages dans l'ordre inverse
' imprimante inverse : l'ordre des pages de la pile finale=20
est invers=E9
' utilise les fonctions zoom de l'impression WORD
Dim NbPages, NbFeuilles, i, Rep, delta As Integer
Dim CouplePage As String
NbPages =3D ActiveDocument.BuiltInDocumentProperties
(wdPropertyPages)
NbFeuilles =3D Int((NbPages + 3) / 4)
If NbFeuilles * 4 <> NbPages Then
delta =3D NbFeuilles * 4 - NbPages
Selection.EndKey Unit:=3DwdStory
For i =3D 0 To delta - 1
Selection.InsertBreak Type:=3DwdPageBreak
Next i
NbPages =3D NbPages + delta
End If
Rep =3D MsgBox("Impression recto-verso de " & _
NbFeuilles & " pages ?", vbYesNo, "Livret")
If Rep =3D vbYes Then
CouplePage =3D ""
For i =3D 0 To NbFeuilles - 1
CouplePage =3D CouplePage + Str((4 *=20
NbFeuilles) - (2 * i)) & ";" & Str(2 * i + 1)
If i < NbFeuilles - 1 Then
CouplePage =3D CouplePage & ";"
End If
Next i
Impr2pages (CouplePage)
Rep =3D MsgBox(" retourner les feuilles et appuyer=20
sur OK", vbOKOnly)
CouplePage =3D ""
For i =3D 0 To NbFeuilles - 1
CouplePage =3D Str(2 * i + 2) & ";" & Str((4 *=20
NbFeuilles) - (2 * i) - 1)
Impr2pages (CouplePage)
Next i
End If
End Sub

1 réponse

Avatar
Anacoluthe
Bonjour !

Cette macro qu'on trouve dans la FAQ
http://faq.ms.word.free.fr/Impression/Impression_rep.htm#i29
a été écrite pour WD2000. Vous ne dites pas laquelle de vos 3
adaptations vous utilisez. Apparemment tout se passe comme
si la deuxième série d'impression était annulée. Supprimez
l'impression en arrière plan dans Outils / Options / Impression.
Signalons aussi que WD2002 dispose contrairement à WD2000 de
l'impression en livret Fichier / Mise en page / selon livre

Anacoluthe
« Il est aussi facile de rêver un livre
qu’il est difficile de le faire. »
- Honoré de BALZAC


'CHTIOUI' nous a écrit ...
Bonjour
En utilisant une macro sur Word XP qui permet l'impression
en recto-Verso avec un format livret.
Quand j'exécute la macro la première fois, l'imprimante
sorte des pages blanches pour les pages paires du document,
alors qu'elle imprime les pages impaires.
Quand je réexécute la macro une deusième fois, le document
est imprimé normalement ( recto-verso en mode livret )
Voici le code de la procédure :

Public Sub Livretv1()
' Macro enregistrée le 11/11/2003 par * * *
' imprime le document sous forme de livret
' pour imprimante imprimant les pages dans l'ordre inverse
' imprimante inverse : l'ordre des pages de la pile finale
est inversé
' utilise les fonctions zoom de l'impression WORD
Dim NbPages, NbFeuilles, i, Rep, delta As Integer
Dim CouplePage As String
NbPages = ActiveDocument.BuiltInDocumentProperties
(wdPropertyPages)
NbFeuilles = Int((NbPages + 3) / 4)
If NbFeuilles * 4 <> NbPages Then
delta = NbFeuilles * 4 - NbPages
Selection.EndKey Unit:=wdStory
For i = 0 To delta - 1
Selection.InsertBreak Type:=wdPageBreak
Next i
NbPages = NbPages + delta
End If
Rep = MsgBox("Impression recto-verso de " & _
NbFeuilles & " pages ?", vbYesNo, "Livret")
If Rep = vbYes Then
CouplePage = ""
For i = 0 To NbFeuilles - 1
CouplePage = CouplePage + Str((4 *
NbFeuilles) - (2 * i)) & ";" & Str(2 * i + 1)
If i < NbFeuilles - 1 Then
CouplePage = CouplePage & ";"
End If
Next i
Impr2pages (CouplePage)
Rep = MsgBox(" retourner les feuilles et appuyer
sur OK", vbOKOnly)
CouplePage = ""
For i = 0 To NbFeuilles - 1
CouplePage = CouplePage + Str(2 * i + 2) & ";"
& Str((4 * NbFeuilles) - (2 * i) - 1)
If i < NbFeuilles - 1 Then
CouplePage = CouplePage & ";"
End If
Next i
Impr2pages (CouplePage)
End If
End Sub


Sub Impr2pages(MesPages As String)
' fonction imprime deux pages
' à adapter selon son format de papier
Application.PrintOut FileName:="",
Range:=wdPrintRangeOfPages, Item:=wdPrintDocumentContent,
Copies:=1, pages:=MesPages, PageType:=wdPrintAllPages,
Collate:=True, Background:úlse, PrintToFile:úlse,
PrintZoomColumn:=2, PrintZoomRow:=1,
PrintZoomPaperWidth:907, PrintZoomPaperHeight:839

End Sub

Public Sub Livretv0()
' Macro enregistrée le 11/11/2003 par * * *
' imprime le document sous forme de livret
' pour imprimante imprimant les pages dans l'ordre inverse
' imprimante inverse : l'ordre des pages de la pile finale
est inversé
' utilise les fonctions zoom de l'impression WORD
Dim NbPages, NbFeuilles, i, Rep, delta As Integer
Dim CouplePage As String
NbPages = ActiveDocument.BuiltInDocumentProperties
(wdPropertyPages)
NbFeuilles = Int((NbPages + 3) / 4)
If NbFeuilles * 4 <> NbPages Then
delta = NbFeuilles * 4 - NbPages
Selection.EndKey Unit:=wdStory
For i = 0 To delta - 1
Selection.InsertBreak Type:=wdPageBreak
Next i
NbPages = NbPages + delta
End If
Rep = MsgBox("Impression recto-verso de " & _
NbFeuilles & " pages ?", vbYesNo, "Livret")
If Rep = vbYes Then
CouplePage = ""
For i = 0 To NbFeuilles - 1
CouplePage = Str((4 * NbFeuilles) - (2 *
i)) & ";" & Str(2 * i + 1)
Impr2pages (CouplePage)
Next i
Rep = MsgBox(" retourner les feuilles et appuyer
sur OK", vbOKOnly)
CouplePage = ""
For i = 0 To NbFeuilles - 1
CouplePage = Str(2 * i + 2) & ";" & Str((4 *
NbFeuilles) - (2 * i) - 1)
Impr2pages (CouplePage)
Next i

End If
End Sub

Public Sub Livretv2()
' Macro enregistrée le 11/11/2003 par * * *
' imprime le document sous forme de livret
' pour imprimante imprimant les pages dans l'ordre inverse
' imprimante inverse : l'ordre des pages de la pile finale
est inversé
' utilise les fonctions zoom de l'impression WORD
Dim NbPages, NbFeuilles, i, Rep, delta As Integer
Dim CouplePage As String
NbPages = ActiveDocument.BuiltInDocumentProperties
(wdPropertyPages)
NbFeuilles = Int((NbPages + 3) / 4)
If NbFeuilles * 4 <> NbPages Then
delta = NbFeuilles * 4 - NbPages
Selection.EndKey Unit:=wdStory
For i = 0 To delta - 1
Selection.InsertBreak Type:=wdPageBreak
Next i
NbPages = NbPages + delta
End If
Rep = MsgBox("Impression recto-verso de " & _
NbFeuilles & " pages ?", vbYesNo, "Livret")
If Rep = vbYes Then
CouplePage = ""
For i = 0 To NbFeuilles - 1
CouplePage = CouplePage + Str((4 *
NbFeuilles) - (2 * i)) & ";" & Str(2 * i + 1)
If i < NbFeuilles - 1 Then
CouplePage = CouplePage & ";"
End If
Next i
Impr2pages (CouplePage)
Rep = MsgBox(" retourner les feuilles et appuyer
sur OK", vbOKOnly)
CouplePage = ""
For i = 0 To NbFeuilles - 1
CouplePage = Str(2 * i + 2) & ";" & Str((4 *
NbFeuilles) - (2 * i) - 1)
Impr2pages (CouplePage)
Next i
End If
End Sub