XL 2016 Zone d'impression et mise en page

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

don julio

XLDnaute Nouveau
Bonjour,
Je cherche a automatiser une impression pour que chaque bloc de cellule soit imprimé sur une page A4 en pleine page.
l'exemple en pièce jointe sera je l'espère parlant 😅

Le nombre de bloc est variable en fonction des jours.

Merci de votre aide.
 

Pièces jointes

Solution
Bonjour,
Je cherche a automatiser une impression pour que chaque bloc de cellule soit imprimé sur une page A4 en pleine page.
l'exemple en pièce jointe sera je l'espère parlant 😅

Le nombre de bloc est variable en fonction des jours.

Merci de votre aide.
J'ai ma réponse avec ce code:
Sub PrintPagesBasedOnMergedCells()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1)
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

Dim startRow As Long
startRow = 1
Dim i As Long
Dim endColumn As Long

For i = 1 To ws.UsedRange.Columns.Count
If ws.Cells(25, i).MergeCells Then
If ws.Cells(25, i).Address = ws.Cells(25, i).MergeArea.Cells(1, 1).Address Then...
Bonjour,
Je cherche a automatiser une impression pour que chaque bloc de cellule soit imprimé sur une page A4 en pleine page.
l'exemple en pièce jointe sera je l'espère parlant 😅

Le nombre de bloc est variable en fonction des jours.

Merci de votre aide.
J'ai ma réponse avec ce code:
Sub PrintPagesBasedOnMergedCells()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1)
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

Dim startRow As Long
startRow = 1
Dim i As Long
Dim endColumn As Long

For i = 1 To ws.UsedRange.Columns.Count
If ws.Cells(25, i).MergeCells Then
If ws.Cells(25, i).Address = ws.Cells(25, i).MergeArea.Cells(1, 1).Address Then
Dim mergedRange As Range
Set mergedRange = ws.Cells(25, i).MergeArea
endColumn = mergedRange.Columns(mergedRange.Columns.Count).Column

ws.PageSetup.PrintArea = ws.Range(ws.Cells(1, i), ws.Cells(lastRow, endColumn)).Address
ws.PrintPreview
End If
End If
Next i
End Sub

Bonne jounée
 
@don julio

Je te propose ce fichier

Avec ta solution si tu as 53 blocs tu prévisualises 53 fois pas top..... 😵
Avec ma solution toutes les pages sont visualisé en 1 seule fois 😉

Edit : Avec 53 blocs
Dans ta version tu visualises/imprimes 53 fois une page
Dans ma version je visualise/imprime 1 fois 53 pages
Tu vois la différence ..... il y a en une plus logique que l'autre sans compter les 53 risques de plantage 😉

Merci de ton retour
 

Pièces jointes

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
163
Réponses
5
Affichages
386
Réponses
6
Affichages
840
Réponses
2
Affichages
519
Retour