Automatisch matrix bijwerken d.m.v. voorwaarde boekjaar/periode

Status
Niet open voor verdere reacties.

Colonel

Gebruiker
Lid geworden
24 apr 2013
Berichten
12
Middag allemaal,

Ik heb een bestand met een matrixoverzicht (gegevens komen uit verschillende draaitabellen). In het tabblad Matrix staan alle gegevens uit de draaitabellen. Laatstgenoemde zijn weer verdeeld over verschillende tabbladen (1 tabblad = 1 draaitabel). In de tabbladen staat op B3 het boekjaar en B4 de periode.

In het tabblad Matrix staat in cel C1 het boekjaar en in C2 de periode. In theorie zou ik deze gegevens kunnen veranderen en als ik vervolgens op een knop voor 'Bijwerken' druk dan wordt de matrix bijgewerkt. Hier ontstaat het probleem: wanneer ik tot en met periode 11 wil bijwerken en vervolgens in de draaitabellen kijk dan selecteert de macro enkel periode 0, 1, 10 en 11.

Wie heeft hier het antwoord op?

Code:
Option Explicit

Sub Update()

Dim pt As PivotTable
Dim ws As Worksheet
Dim wsName As String
Dim ptName As String
Dim pf As PivotField
Dim pfName As Variant
Dim FieldNames(1 To 2) As String
Dim pfJaar As String
Dim pfPeriode As String
Dim pi As PivotItem

FieldNames(1) = "Boekjaar"
FieldNames(2) = "Periode"

'Lees invulvelden
pfJaar = Range("C1").Value
pfPeriode = Range("C2").Value

'Loop door alle werkbladen behalve de eerste
For Each ws In Worksheets
    wsName = ws.Name
    If wsName <> "Matrix" Then
        'Worksheets(wsName).PivotTables(1).PivotFields("Boekjaar").EnableMultiplePageItems = False
        'Worksheets(wsName).PivotTables(1).PivotFields("Periode").EnableMultiplePageItems = True
        For Each pfName In FieldNames
            Worksheets(wsName).PivotTables(1).PivotFields(pfName).ClearAllFilters
            For Each pi In Worksheets(wsName).PivotTables(1).PivotFields(pfName).PivotItems
                If pfName = "Boekjaar" Then
                    If pi.Name = pfJaar Then
                        pi.Visible = True
                    Else
                        pi.Visible = False
                    End If
                Else
                    If pi.Name <= pfPeriode Then
                        pi.Visible = True
                    Else
                        pi.Visible = False
                    End If
                End If
            Next pi
        Next pfName
    End If
Next ws

End Sub
[SUP][/SUP]

BESTAND: Bekijk bijlage RC MATRIX WERKBESTAND2.xlsm
 
Laatst bewerkt:
Zonder voorbeeldbestand: ik niet
 
Zonder voorbeeldbestand: ik niet

Zojuist bestand toegevoegd. I.v.m. vertrouwelijke informatie heb ik het e.e.a. moeten aanpassen.

Bij het openen komt direct een foutmelding, zie niet zo snel waarom deze tevoorschijn komt.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan