Impression recto/verso

Bonjour,

J'ai un petit code qui me permet d'incrémenter la date à chaque impression cependant je souhaiterais le faire en recto/verso mais pas moyen. Recto/verso est sélectionné et mon imprimante imprime bien par défaut en recto/verso aussi, mais le code ne semble pas le prendre en compte. Auriez-vous une solution ?

Sub Imprimer()
    Dim n As Variant
1         n = InputBox("Nombre de copies :", "Imprimer")
    If n = "" Then Exit Sub
    If Val(n) = 0 Then GoTo 1
    Application.EnableEvents = False        'évite le lancement de BeforePrint
    With ActiveSheet
        For n = 4 / 1 / 2021 To Val(n)
            If Weekday(Cells(1, 1), vbSunday) > 5 Then
                .[A1] = .[A1] + 1
                n = n - 1
            Else
                .[A1] = .[A1] + 1        'numérotation
                 .PrintOut , Collate:=True
            End If

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Feuil1" Then
  Cancel = True
  Imprimer
End If
End Sub

Et alors autre question, est-il possible d'attribuer la valeur d'une cellule pour une constante ?

Merci !

Bonjour,

Pas de solution à proposer ?

Bonjour

Au lieu de mettre .PrintOut, passe plutôt par l'affichage de la liste d'imprimantes

Application.Dialogs(xlDialogPrint).Show

Bonjour,

Sans succès, et même, il n'incrémente plus la date

Bonjour,

En fait le code n'était pas le problème, juste qu'Excel n'imprime pas en recto/verso une feuille unique.

J'ai donc fait un second exemplaire de mon tableau sous le 1er avec la date décalée d'un jour. Maintenant mon problème est avec l'incrémentation de la date, qui est censé sauter les week-ends.

Sub Imprimer()
    Dim n As Variant
1         n = InputBox("Nombre de copies :", "Imprimer")
    If n = "" Then Exit Sub
    If Val(n) = 0 Then GoTo 1
    Application.EnableEvents = False        'évite le lancement de BeforePrint

    With ActiveSheet
        For n = 4 / 1 / 2021 To Val(n)
            If Weekday(Cells(1, 1), vbSunday) > 5 Or Weekday(Cells(31, 1), vbSunday) > 5 Then
                .[A1] = .[A1] + 2
                .[A31] = .[A31] + 2
                n = n - 2
            Else
                .[A1] = .[A1] + 2        'numérotation
                .[A31] = .[A31] + 2
                .PrintOut , collate:=True
            End If
        Next
    End With
    Application.EnableEvents = True
End Sub

le fichier si jamais , je tiens à mon économie de papier Merci !

3index-km.xlsm (20.37 Ko)
Rechercher des sujets similaires à "impression recto verso"