Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 *** RESOLU MERCI :)*** Impression personnalisée.

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 !

Agecanonix35400

XLDnaute Junior
Bonjour à tous.

J'aurais besoin de vos lumières si vous le permettez.
En effet je vous ai mis mon fichier de facturation en exemple.
Lorsque je veux imprimer, je voudrais imprimer avec les filtres présents colonnes "A" et "H"
En revanche lorsque j'imprime cela me sort la liste complète
Ce que je voudrais c'est 1 jour par feuille
Par exemple
feuille 1 le 1er janvier.
feuille 2 le 02 janvier recto/verso
feuille 3 le 03 janvier.

Actuellement je dois sélectionner ma date et imprimer et refaire la même chose pour les autres jours.
Cela prend un temps fou car j'ai 3 fichiers gros comme celui-ci à imprimer.

Merci de me dire s'il y a un moyen d'imprimer en selectionnant le mois complet et que ca imprime 1 feuille par date ou bien une autre manière de faire.
 

Pièces jointes

Solution
Bonjour le forum,

Dans le fichier joint j'ai augmenté le nombre de lignes du 02/01/2025 pour que ce jour occupe 2 pages.

Dans la macro Imprimer il faut ôter Application.ScreenUpdating = False pour que l'aperçu puisse afficher la 2ème page.

A+
OUI mais cela est beaucoup moins pratique.
Juste selectionner et imprimer.
De plus si on rajoute des pages cela augmente la taille de mon fichier et avec mes analyses, mon fichier est très volumineux.
SInon sur ton fichier
J'ai cliqué sur imprimé sur le 1er onglet mais je n'ai qu'une page à imprimer.
Sur le 2ème onglet je n'ai qu'un seul jour à imprimer, après faut que je selectionne le tout 1 par 1
Sur le 3ème onglet je n'ai rien à imprimer.

Je te remercie encore pour ton aide.

Bonne journée
 
J'ai cliqué sur imprimé sur le 1er onglet mais je n'ai qu'une page à imprimer.
Sur le 2ème onglet je n'ai qu'un seul jour à imprimer, après faut que je selectionne le tout 1 par 1
Sur le 3ème onglet je n'ai rien à imprimer.
Si tu as plusieurs feuilles dans ton classeur qui utilisent la macro, alors il faut modifier cette ligne :
VB:
If ActiveSheet.Name <> "Feuille pour factu" Then Exit Sub

As-tu réussi à le faire ?
 
Si tu as plusieurs feuilles dans ton classeur qui utilisent la macro, alors il faut modifier cette ligne :
VB:
If ActiveSheet.Name <> "Feuille pour factu" Then Exit Sub

As-tu réussi à le faire ?
Je te remercie mais il n'y a que cette feuille qui l'utilise.
En tous les cas je garde cela de côté car si jamais j'ai d'autres besoins je pourrais essayer de voir comment faire.
Sinon je referai appel à toi 😉

Encore merci et bonne journée.
Vraiment merci
 
Salut, désolé de te redéranger pour cela mais serait-il possible d'y apporter une petite modif stp.... Est-il possible de n'avoir qu’un jour par feuille ?
Dans la macro donnée on change de page à la fin de chaque jour.
Je ne sais pas si je me fais bien comprendre. par exemple:
le 1er je l'ai sur la page 1,
le 2 je l'ai sur la page 2.
Serait-il possible d'avoir le 1er sur la feuille 1 et le 2 sur la feuille 2?

SI cela est trop compliqué, t'inquiète pas je me débrouille. 😉
 
 

Pièces jointes

  • Capture d’écran 2025-11-07 091522.png
    260.7 KB · Affichages: 9
SI cela est trop compliqué, t'inquiète pas je me débrouille. 😉
Il faudrait sûrement configurer l'impression en mode simple face, ce qui n'est déjà pas très simple pour moi... mais ça risque de ne pas être bon car dans ce cas si jamais tu as un jour sur deux pages il va du coup s'imprimer sur deux feuilles.

Je regarde ça dans la journée si j'ai le temps, sinon cette nuit.
 
Dernière édition:
Non t'inquiète. c'est très bien comme tu as fait je me débrouille. Mais il est vrai que je voudrais un jour par feuille et si le jour a besoin de deux pages, j'aimerais que cela imprime en verso. Donc t'inquiète c'est déjà très bien.
Pour tout te dire j'ai essayé par chatgpt pour ne pas te déranger mais cela ne donne rien. 😉
 
Oui, il faudrait la partager car c'est bien là le principe d'un forum : on pose une question et si on a une solution on la partage (même si elle vient d'une de ces cochonneries de soi-disant "intelligence" artificielle).
Il a trouvé, par contre moi je n'y comprends rien 😉 Je te laisse le soin d'analyser sa réponse:

VB:
Sub ImpressionRectoJour_Stable()
    Dim TS As ListObject
    Dim MesDates As Range, NewCel As Range, OldCel As Range
    Dim Debut As Boolean
    Dim ws As Worksheet
    Dim PlageJour As Range
    Dim DebutJour As Long, FinJour As Long
    Dim dlgResult As Boolean

    ' Vérifie la feuille
    Set ws = ActiveSheet
    If ws.Name <> "Feuille pour factu" Then Exit Sub

    ' Récupère le tableau et les cellules visibles de la colonne 2
    Set TS = ws.ListObjects(1)
    On Error GoTo ErrNoVisible
    Set MesDates = TS.ListColumns(2).DataBodyRange.SpecialCells(xlCellTypeVisible)
    On Error GoTo 0

    ' --- Configuration de l'impression (avant boîte d'impression) ---
    With ws.PageSetup
        .PrintTitleRows = TS.HeaderRowRange.Address
        .PrintTitleColumns = ""
        .CenterHorizontally = True
        .CenterVertically = False
    End With

    ' --- Ouvre le panneau d'impression pour choisir l'imprimante ---
    dlgResult = Application.Dialogs(xlDialogPrinterSetup).Show
    If dlgResult = False Then
        MsgBox "Sélection d'imprimante annulée. Aucune impression lancée.", vbInformation
        Exit Sub
    End If

    ' Supprime les anciens sauts de page
    ws.ResetAllPageBreaks

    ' --- Impression jour par jour ---
    Debut = True
    DebutJour = 0

    For Each NewCel In MesDates
        If Debut Then
            Set OldCel = NewCel
            DebutJour = NewCel.Row
            Debut = False
        Else
            If NewCel.Value <> OldCel.Value Then
                ' Impression du jour précédent
                FinJour = OldCel.Row
                Set PlageJour = ws.Rows(DebutJour & ":" & FinJour)
                PlageJour.PrintOut

                ' Ajout d'un saut de page avant le nouveau jour pour forcer le recto
                ws.HPageBreaks.Add Before:=ws.Rows(NewCel.Row)

                ' Nouveau jour
                DebutJour = NewCel.Row
                Set OldCel = NewCel
            Else
                Set OldCel = NewCel
            End If
        End If
    Next NewCel

    ' Impression du dernier jour
    If DebutJour > 0 Then
        FinJour = OldCel.Row
        Set PlageJour = ws.Rows(DebutJour & ":" & FinJour)
        PlageJour.PrintOut
    End If

    MsgBox "Impression terminée : chaque jour commence sur un recto.", vbInformation
    Exit Sub

ErrNoVisible:
    MsgBox "Aucune cellule visible trouvée dans la 2ème colonne du tableau.", vbExclamation
End Sub
 
Dernière édition:
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…