Imprimer plusieurs onglets avec zone d'impression dynamique

  • Initiateur de la discussion Initiateur de la discussion Adc
  • 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 !

Adc

XLDnaute Nouveau
Bonjour à tous,

J'ai un classeur avec plusieurs onglets. Chaque onglet possède le même nombre de colonnes à imprimer, mais le nombre de lignes peut varier (23 au minimum) en fonction des données enregistrées.

Y-a-il un moyen pour imprimer tous les onglets et que la zone d'impression s'ajuste automatiquement aux lignes renseignées ?

En espérant être clair.

Adc.
 
Re : Imprimer plusieurs onglets avec zone d'impression dynamique

Bonjour à tous,

Je pense que c'est possible en définissant les zones d'impression pour chaque feuilles (elles n'apparaissent pas forcément dans Insertion / Nom / Définir mais sont conservées en mémoire).

Zone_d_impression
=DECALER('F1'!$A:$G;;;NBVAL('F1'!$A:$A))

A+ à tous
 
Re : Imprimer plusieurs onglets avec zone d'impression dynamique

Salut,un essai vite fait, les conditions de sélection ou non des pages à imprimer
sera à adapter à ton contexte ainsi que le nombre de colonnes
Si une mise en page personnalisée est à faire pour chaque feuille
utiliser ExecuteExcel4Macro "PAGE.SETUP... voir sur Mise en page avec les macros XL4 - - Forum des professionnels en informatique
qui est nettement plus véloce que l'équivalent en code VBA généré par le macro recorder
Code:
Option Explicit

Sub Tst()
Dim Ws As Worksheet
Dim LastRow As Long
Dim Ar() As String, i As Long

    For Each Ws In ThisWorkbook.Worksheets
        LastRow = Ws.Range("A" & Rows.Count).End(xlUp).Row
        If Ws.Name <> "Feuil3" And Ws.Name <> "Feuil4" Then
            Ws.PageSetup.PrintArea = "$A$1:$B$" & LastRow
            ReDim Preserve Ar(i)
            Ar(i) = Ws.Name
            i = i + 1
        End If
    Next Ws

    Sheets(Ar()).Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Sheets("Feuil1").Select
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

Réponses
7
Affichages
165
Réponses
6
Affichages
841
Retour