• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Afdrukken van elke debiteur in draaitabel

Status
Niet open voor verdere reacties.

Goldfoxx

Gebruiker
Lid geworden
22 okt 2010
Berichten
22
Ik heb een draaitabel gemaakt, waarbij ik voor elke debiteur in het rapportfilter een uitdraai van de pagina wil maken.

Nu heb ik wel wat lopen klooijen met macro's, die ik van internet her en der heb geplukt.
Éen macro die ik heb gevonden werkt, maar heeft bij mijn bestand een probleem.

Hij print sommige debiteuren 2-5 keer uit voordat hij overschakelt naar de volgende debiteur. Ik heb een testbestandje gemaakt, met precies evenveel kolommen en waarden in de originele draaittabel. Het aparte is dat hij bij dit bestandje wel elke debiteur één maal uitprint.

Het originele bestand heeft enkele honderden regels.

Ik gebruik de volgende macro:

Code:
Sub PrintAll()
 'prints a chart for each item in the page field
    On Error Resume Next
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim pi As PivotItem
    Set pt = ActiveSheet.PivotTables.Item(1)
    For Each pf In pt.PageFields
        For Each pi In pf.PivotItems
            pt.PivotFields(pf.Name).CurrentPage = pi.Name
            ' ActiveSheet.PrintOut  'use this for printing
            ActiveSheet.PrintPreview 'use this for testing
        Next
    Next pf
End Sub

Heeft iemand een idee, waarom de makro elke debiteur meerdere keren uitprint, en heeft iemand daar een oplossing voor?
 

Bijlagen

Met dit stukje code moet het wel lukken:
Code:
 With ActiveSheet.PivotTables("Draaitabel1").PivotFields("Debiteurnaam")
        .PivotItems("Jan").Visible = True    
End With
    
[COLOR="darkred"]'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False[/COLOR]

Op deze manier print hij de draaitabel met Jan 1 keer. Dus dan moet je deze code uitbreiden met alle andere namen

Het rode gedeelde is om te printen
 
Laatst bewerkt:
Met dit stukje code moet het wel lukken:
Code:
 With ActiveSheet.PivotTables("Draaitabel1").PivotFields("Debiteurnaam")
        .PivotItems("Jan").Visible = True    
End With
    
[COLOR="darkred"]'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False[/COLOR]

Op deze manier print hij de draaitabel met Jan 1 keer. Dus dan moet je deze code uitbreiden met alle andere namen

Het rode gedeelde is om te printen

Het gaat in mijn geval om ong 240 debiteuren, dus om jouw code dan aan te vullen wordt een beetje teveel. Kan ik het net zo goed handmatig doen.
 
Ik heb de code getest die jij in het begin hebt gepost. Maar hij werkt bij mij gewoon hoor! Ik heb ipv het op papier te printen het met een pdf programma geprint. En in mijn pdf staat elke naam maar 1 keer! Dus wat gaat er bij jouw mis?

Code:
Sub PrintAll()
    On Error Resume Next
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim pi As PivotItem
    Set pt = ActiveSheet.PivotTables.Item(1)
    For Each pf In pt.PageFields
        For Each pi In pf.PivotItems
            pt.PivotFields(pf.Name).CurrentPage = pi.Name
            ActiveSheet.PrintPreview 
        Next
    Next pf
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan