1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| Sheets("Synthèse").Select 'c'est la feuille contenant le TCD
'Masque la colonne "A" vide (Le TCD commence colonne "B")
'permet un meilleur centrage à l'impression
Columns("A:A").Select
Selection.EntireColumn.Hidden = True
'sélectionne la date souhaitée du filtre ( dates réintroduites plus bas avant de sortir)
' toutes les dates sont masquées avant sélection de la date à imprimer
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Années")
n_annee = 2012 'initialisation à la première année du TCD
Do While n_annee <= Year(Date)
.PivotItems(CStr(n_annee)).Visible = False
n_annee = n_annee + 1
Loop
.PivotItems(CStr(vAnnee)).Visible = True
End With
'détermine le nombre de colonne (variable suivant les années)
Range("b6").Select
ActiveCell.End(xlToRight).Select
vcol = ActiveCell.Column
'impression des 3 lignes d'entête du TCD
With ActiveSheet.PageSetup
.PrintTitleRows = "$4:$6"
.PrintTitleColumns = ""
.Zoom = Int(800 / vcol) ' formule pour prendre en compte le nombre de colonne
End With
FrmEncoder.Hide 'masque le formulaire
Application.PrintCommunication = True
Application.Dialogs(xlDialogPrintPreview).Show ' appercu avant impression
Application.ScreenUpdating = False
reponse = MsgBox("Voulez-vous imprimer l'aperçu ?", vbYesNo + vbQuestion, "impression")
If reponse = vbYes Then
ActiveSheet.PrintOut
End If
'resélectionne toutes les années avant la sortie (indispensable pour le test plus haut)
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Années")
n_annee = 2012
Do While n_annee <= Year(Date)
If .PivotItems(CStr(n_annee)).Visible = False Then
.PivotItems(CStr(n_annee)).Visible = True
End If
n_annee = n_annee + 1
Loop
.PivotItems(CStr(vAnnee)).Visible = True
End With
'affiche la colonne "A" pour un meilleur centrage à l'écran (lecture)
Columns("A:A").Select
Selection.EntireColumn.Hidden = False |
Partager