En ik had nog niet eens iets gedaan. Sorry voor de vertraging trouwens, maar ik had plots serieus wat werk op de plank.
Ik zou op een verborgen blad een aantal draaitabellen maken, steeds op basis van dezelfde basisdata, maar iedere keer met een ander veld. De data zelf hoeft niet eens ingevuld te worden. Je zou dit eventueel ook met formules kunnen, maar dat vind ik persoonlijk omslachtiger. De eerste draaitabel is dan gewoon de achternamen, de tweede de voornamen, de derde de lessen,...
Zorg dat je geen eindtotaal hebt voor elk van deze en dan benoem je ze als benoemd bereik. Je weet hoe dat moet, maar je moet er ook voor zorgen dat ze dynamisch zijn
Dus stel dat je draaitabel voor de achternaam op blad 2, kolom a staat, dan wordt de definitie van het bereik: (ik veronderstel dat de eerste naam in cel A3 staat en dat je niet meer dan 10000 namen hebt.)
=VERSCHUIVING(Blad2!$A$3;0;0;AANTALARG(Blad2!$A$3:$A$10000)-1;1)
Voor de tweede draaitabel zal je dan wel een filter (de achternaam) moeten instellen. Die koppel je dan met wat VBA aan de dropdown. Waarschijnlijk zal dat er ongeveer zo moeten uitzien (te plakken in de code van het tabblad waar je de dropdown hebt)
Hier wordt verondersteld dat je dropdown zich bevindt in I1 (kolom 9, rij 1)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
[COLOR=#008000]'Definieer de variabelen
[/COLOR][COLOR=#151B8D][B]Dim[/B][/COLOR] pt [COLOR=#151B8D][B]As[/B][/COLOR] PivotTable
[COLOR=#151B8D][B]Dim[/B][/COLOR] Field [COLOR=#151B8D][B]As[/B][/COLOR] PivotField
[COLOR=#151B8D][B]Dim[/B][/COLOR] NewCat AsString
[COLOR=#008000]'Amend here to filter your data
[/COLOR][COLOR=#151B8D][B]Set[/B][/COLOR] pt = Worksheets([COLOR=#800000]"Blad2"[/COLOR]).PivotTables([COLOR=#800000]"Draaitabel2"[/COLOR])
[COLOR=#151B8D][B]Set[/B][/COLOR] Field = pt.PivotFields([COLOR=#800000]"Achternaam"[/COLOR])
NewCat = Worksheets([COLOR=#800000]"Blad1"[/COLOR]).Range([COLOR=#800000]"I1"[/COLOR]).Value
[COLOR=#8D38C9][B]With[/B][/COLOR] pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
EndWith
End If
End Sub
Daarna doe je ook hetzelfde voor de lessen.
Gebruik tenslotte de benoemde bereiken als bron voor je dropdowns.