Forcer l'impression d'un contenu au verso

  • Initiateur de la discussion Initiateur de la discussion lezik
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

lezik

Guest
Bonsoir,
je suis en train de réaliser un modèle de facture sous excel 2007 et je bloque sur un détail :/

est-il possible d'obliger excel a imprimer derrière chaque page un texte reprenant les conditions générales de l'entreprise?

merci pour votre aide ! 🙂
 
Re : Forcer l'impression d'un contenu au verso

Bonjour
Bise à Bruno

Dans Excel c'est compliqué mais sans doute faisable par VBA. Cependant je pense que certaine imprimantes RV peuvent être paramétrées en ce sens ou qu'un pré-imprimé est plus rentable si le volume est important.

Dans Word ce serait plus simple...
 
Re : Forcer l'impression d'un contenu au verso

Bonjour

N'ayant pas d'imprimante Recto/Verso, je n'ai pu tester en vraie grandeur mais il me semble que si l'onglet Recto nécessite plusieurs pages, les CGV au verso ne s'intercalent pas, si ?
 
Re : Forcer l'impression d'un contenu au verso

Bonjour

Une tentative en remplaçant dans Sub ImpressionRectoVersoExcel() la ligne
Code:
    Sheets(Array("Recto", "Verso")).PrintOut Copies:=1, Collate:=True
par
Code:
    Call Intercaler("Recto")
et la procédure
Code:
Option Explicit
Sub Intercaler(WKS As String)

Dim Memo As String, PremLig As Long, DerLig As Long, Extgauche As Integer, ExtDroite As Integer, y As Long, x As Long
Dim Fin As Long, Debut As Long, Gauche As Integer, Droite As Integer, Ppage As Long, PpageL As Integer
Dim MemoT()
Dim ThisWKS As Worksheet

    Application.ScreenUpdating = False
    Set ThisWKS = ActiveSheet
    With Worksheets(WKS)
        .Select
        ActiveWindow.View = xlPageBreakPreview

        Memo = .PageSetup.PrintArea
        If Memo = "" Then
            PremLig = .UsedRange.Row
            DerLig = .Range("A1").SpecialCells(xlCellTypeLastCell).Row
            Extgauche = .UsedRange.Column
            ExtDroite = Extgauche + .UsedRange.Columns.Count - 1
        Else
            MemoT = Split(Memo, "$")
            Extgauche = Range(MemoT(1) & "1").Column
            PremLig = Left(MemoT(2), Len(MemoT(2)) - 1) * 1
            ExtDroite = Range(MemoT(3) & "1").Column
            DerLig = MemoT(4) * 1
        End If
        y = .HPageBreaks.Count
        x = .VPageBreaks.Count

        Debut = 1
        If y > 0 Or x > 0 Then
            Gauche = Extgauche
            If .PageSetup.Order = xlDownThenOver Then
                For PpageL = 1 To x + 1
                    Debut = PremLig
                    If PpageL <= x Then
                        Droite = .VPageBreaks(PpageL).Location.Column - 1
                    Else
                        Droite = ExtDroite
                    End If
                    For Ppage = 1 To y + 1
                        If Ppage > y Then
                            Fin = DerLig
                        Else
                            Fin = .HPageBreaks(Ppage).Location.Row - 1
                        End If
                        .PageSetup.PrintArea = Range(Cells(Debut, Gauche), Cells(Fin, Droite)).Address
                        'Lancer l'impression des 2 feuilles
                        Sheets(Array(WKS, "Verso")).PrintOut Copies:=1, Collate:=True
                        .Select
                        .PageSetup.PrintArea = Memo
                        Debut = Fin + 1
                    Next Ppage
                    Gauche = Droite + 1
                Next PpageL
            Else
                Debut = PremLig
                For Ppage = 1 To y + 1
                    Gauche = Extgauche
                    If Ppage > y Then
                        Fin = DerLig
                    Else
                        Fin = .HPageBreaks(Ppage).Location.Row - 1
                    End If
                    For PpageL = 1 To x + 1
                        If PpageL <= x Then
                            Droite = .VPageBreaks(PpageL).Location.Column - 1
                        Else
                            Droite = ExtDroite
                        End If
                        .PageSetup.PrintArea = Range(Cells(Debut, Gauche), Cells(Fin, Droite)).Address
                        'Lancer l'impression des 2 feuilles
                        Sheets(Array(WKS, "Verso")).PrintOut Copies:=1, Collate:=True
                        .Select
                        .PageSetup.PrintArea = Memo
                       Gauche = Droite + 1
                    Next PpageL
                    Debut = Fin + 1
                Next Ppage
            
            End If
        Else
            Sheets(Array(WKS, "Verso")).PrintOut Copies:=1, Collate:=True
            .Select
        End If
        .PageSetup.PrintArea = Memo
    End With

    ActiveWindow.View = xlNormalView
    ThisWKS.Select

End Sub

A tester.
Le code peut sans doute être amélioré... C'est un premier jet.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

R
  • Question Question
Réponses
1
Affichages
753
P
Réponses
15
Affichages
3 K
Pauliakov
P
L
Réponses
4
Affichages
3 K
lapluchouet
L
W
Réponses
0
Affichages
2 K
William
W
M
Réponses
11
Affichages
4 K
GRI84
G
F
Réponses
0
Affichages
7 K
F
G
Réponses
1
Affichages
2 K
GrimmJow
G
T
Réponses
2
Affichages
2 K
Retour