Macro impression sans page blanche 4 TDC côte à côte de hauteur différent

Bonjour à tous,

Je sollicite votre aide car je souhaiterais imprimer 4 tableaux croisés dynamiques qui se trouvent les uns à côté des autres.

L'onglet se présente de la manière suivante :

Ce sont des tableaux qui sont amener à mis à jour régulièrement par plusieurs personnes (enfin les données sources seront complétées et les TCD actualisés).

Mon souhait est de pouvoir imprimer ces 4 TCD les uns derrières les autres afin d'avoir la pagination qui se suit correctement mais sans que les pages blanches (dans l'exemple les pages 4, 6 et 8) ne soient imprimées et donc comptabilisées dans la pagination.

La photo n'est qu'un exemple mais au final il y aura beaucoup plus de lignes que ça pour chaque tableau.

J'ai fait un essai avec la zone d'impression, en sélectionnant mes tableaux mais si je rajoute des données, celles-ci ne figureront pas dans l'impression ce qui me pose un réel problème.

Auriez-vous une idée ?

Peut-être une macro qui me permettrai de prendre :

- de la colonne A3 à la fin du tableau en colonne F (TCD1),

- de la colonne I3 à la fin du tableau en colonne P (TCD2),

- de la colonne Q3 à la fin du tableau en colonne X (TCD3)

- et de la colonne Y3 à la fin du tableau en colonne AF (TCD4)

En prenant la dernière ligne des colonnes F, P, X et AF. Et que si on rajoute des données, ces dernières lignes soient biens prises en compte dans l'impression.

Je vous remercie par avance pour votre aide

Cindy

Salut,

Ta photo n'est pas passée, mais bien souvent on ne peut pas avancer avec une image.

Peux-tu alors fournir un fichier exemple avec toutes les lignes que tu auras réellement (mais avec des données anonymisées si tu le souhaites) ?

Amicalement.

Bonjour Yvouille,

En pièce jointe le fichier très allégé.

Le nombre de ligne que j'aurai réellement n'est pas constant car dès qu'on a un nouvel équipement sur site, cela va ajouter une ligne au TCD correspondant et ça arrive régulièrement. Nous serons plusieurs personnes à remplir ce fichier.

Merci beaucoup par avance pour ton aide :)

Cindy

12pour-aide.zip (233.28 Ko)

Salut Cindy,

Je te propose peut-être pas très orthodoxe, mais qui fonctionne malgré tout. Ca passe par le bouton ''Impression'' sur la feuille ''TCD''.

Il faudra faire quelques petits réglages pour la mise en page de l'impression finale, mais regarde déjà le résultat actuel.

A te relire.

21pour-aide-v1.zip (235.08 Ko)

Bonjour :)

Merci beaucoup, ça m'a l'air super

Serait-il possible de m'expliquer la macro et la signification des lignes ?

Option Explicit

Sub Impression()

Dim i As Integer, DerLig As Integer, DerLig_Bis As Integer

Application.ScreenUpdating = False

Sheets.Add After:=Sheets(Sheets.Count)

With Sheets("TCD")

For i = 1 To 25 Step 8 ' Séries de 8 colonnes

DerLig = .Cells(Rows.Count, i).End(xlUp).Row

DerLig_Bis = Range("A" & Rows.Count).End(xlUp).Row

If DerLig_Bis = 1 Then

.Range(.Cells(3, i), .Cells(DerLig, i + 7)).Copy Range("A" & DerLig_Bis)

Else

.Range(.Cells(3, i), .Cells(DerLig, i + 7)).Copy Range("A" & DerLig_Bis + 1)

End If

DerLig_Bis = Range("A" & Rows.Count).End(xlUp).Row

ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(DerLig_Bis + 1, 1)

Columns("A:A").ColumnWidth = 9.86

Columns("B:B").ColumnWidth = 13.29

Columns("C:C").ColumnWidth = 30.14

Columns("D:D").ColumnWidth = 26.86

Columns("E:E").ColumnWidth = 11.86

Columns("F:F").ColumnWidth = 15.57

Columns("G:G").ColumnWidth = 15.71

Columns("G:G").ColumnWidth = 9.29

ActiveSheet.PageSetup.Zoom = 60

Next i

ActiveSheet.PrintOut

Application.DisplayAlerts = False

ActiveSheet.Delete

Application.DisplayAlerts = True

End With

End Sub

Merci par avance !

Cindy

Par tout hasard, serait-il possible d'ajouter la répétition de la première ligne sur chaque feuille ?

Merci par avance

Cindy

Re,

Il est toujours difficile de commenter une macro ; la peur d'en faire trop ou pas assez. Si mes commentaires à ton attention - ceux précédés de yyy - ne sont pas suffisants, dis-moi quelles instructions te posent encore problème.

Sinon j'ai tenté de répondre à ta demande complémentaire.

Amicalement.

21pour-aide-v2.zip (237.16 Ko)

Bonjour,

Quelle est la version Excel utilisée ?
Suivant cette version, VBA n'est peut-être pas utile (alternative : Power Query).
Cdlt.

Bonjour à toutes et tous,
Une proposition Power Query avec un soupçon de VBA pour l'actualisation et l'impression.
Les TCDs sans calculs sont à priori d'aucunes utilités.

Cdlt.

18cindy33-v1.xlsm (59.16 Ko)

Bonjour Yvouille,

Super, merci beaucoup pour les explications, ça m'aide vraiment à comprendre le code

Bonjour Jean-Eric,

Merci beaucoup pour ta proposition et c'est top ! Je ne connaissais pas du tout le Power Query et en effet ça m'a l'air plus simple en terme de maintenance du fichier.

Les TCD c'est uniquement pour avoir les colonnes qui m'intéressent dans les données d'origine car en fait le tableau est beaucoup plus grand que ça que ce soit en nombre de colonnes et de lignes.

Serait-il possible de savoir comment as-tu fait pour intégrer les 4 tableaux en 1 et l'avoir sur le même document ?

Merci vous 2 !

Cindy

Bonjour,

@Cindy33,
Je t'ai demandé ta version Excel car c'est important pour la suite.
Pour Excel 2010 et 2013, Power Query est un complément gratuit Microsoft à télécharger et à installer (possibilité ?).
Pour les versions ultérieures, Power Query est natif.

Quelle est donc ta version Excel ?
Cdlt.

Oups pardon j'ai Excel 2016

Bonjour,

@Cyndi33,
Je te prépare un tutoriel pour réaliser la chose.
Cdlt.

Bonjour,

Je t'ai préparé un petit tuto.

Capture d'écran et croquis (Windows 10) ne fonctionnant plus (), je n'ai pas pu mettre d'images pour illustrer certains points.

A te relire.

Cdlt.

30cindy33-v1.xlsm (62.61 Ko)

Bonjour Jean-Eric,

Je suis désolée pour cette réponse tardive, j'étais en congés

Merci beaucoup pour ce tuto :)

Bonjour,
Pas de soucis !
Cdlt.

Rechercher des sujets similaires à "macro impression page blanche tdc cote hauteur different"