Imprimer chaque valeur dans le champ de page - Conseils Excel

Table des matières

Raj demande:

J'ai un tableau croisé dynamique Excel mis en place avec 150 valeurs différentes dans le champ de page. Comment puis-je exécuter une macro pour imprimer chaque page individuelle? J'ai essayé d'enregistrer la macro, mais elle code en dur le nom de chaque page, et certaines de ces pages peuvent ne pas être là d'une semaine à l'autre.

Visual Basic en fait un jeu d'enfant. Cette macro utilise les éléments suivants:

  • La collection PageFields vous indiquera le nom du premier champ de page dans le tableau croisé dynamique .
  • La collection PivotItems est une liste de tous les éléments (pages) dans le champ de page.
  • La propriété CurrentPage vous permet de modifier la page affichée dans le tableau croisé dynamique .
Sub PrintAll() ' Find name of page field PageField1 = ActiveSheet.PivotTables("PivotTable1").PageFields(1) ' Save the name of the page field displayed when macro begins OrigPage = ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).CurrentPage ' Determine how many pages there are in page field NumPages = ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).PivotItems.Count For i = 1 To NumPages ThisPage = ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).PivotItems(i) ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).CurrentPage = ThisPage ActiveWindow.SelectedSheets.PrintOut Next i ' Print the (all) page ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).CurrentPage = "(all)" ActiveWindow.SelectedSheets.PrintOut ' Restore view back to original page ActiveSheet.PivotTables("PivotTable1").PivotFields(PageField1).CurrentPage = OrigPage End Sub

Un conseil à Raj pour son rapport avec cet indice. La macro ci-dessus ne fonctionnera pas lorsque votre tableau croisé dynamique sera trié sous Avancé. La réinitialisation en manuel corrigera le problème.

Remarque

Cette astuce parcourt chaque champ de page afin de les imprimer. Si vous souhaitez générer un classeur avec 150 feuilles de calcul différentes, une pour chaque valeur de champ de page, vous pouvez utiliser la fonctionnalité Afficher les pages.

Articles intéressants...