For at gøre filerne lidt lettere, vil jeg gerne have samtlige efterfølgende pivottabeller til at basere sig på den første. Men følgende kode giver en runtime error:
Hvad der går galt er jeg ikke rigtig klar over, men test lige det her istedet: ActiveSheet.PivotTableWizard SourceType:=xlPivotTable, SourceData:= _ "PivotTable1", TableDestination:="Ark1!R20C2", _ TableName:="PivotTable2"
Som udgangspunkt fungerer det, men der er bare det problem (som ved andet kode optaget med macro-optageren), at det forudsætter, at arket er aktiveret. Det vil jeg MEGET gerne undgå, da det afvikler koden væsentlig hurtigere, hvis et andet ark er aktiveret. Performance lider væsentlig, hvis der samtidig skal opdateres skærmbillede...
Jeg er ikke helt med. Arket behøver da ikke være aktiveret (det behøver jo ikke være activesheet) og at oprette en pivot via pivottablewizard er lige så hurtigt som det andet. Min kodestump er jo bare et eksempel.
Ahh... nu er vi ved at være der, hvor løsningen er på vej, kan jeg mærke! Og hvor jeg også lærer noget nyt! :)
Har du mulighed for at sende et komplet eksempel lige fra erklæring af evt. variable + første pivot(den med source:=xlDataBase) + anden pivot(den med source:=xlPivotTable)? Jeg har selv rodet lidt med PivotCache uden helt at få det til at virke.
Ved nærmere eftertanke: Er PivotCaches(1) så SourceType + SourceData fra første pivot? Hvis ja, hvordan går jeg så, hvis jeg arbejder med flere serier af pivottabeller, som alle skal have en første pivot, der suger i forskellige xlDataBase? Og hvor de efterfølgende har en række pivot, som skal bruge samme kilde (i form af xlPivotTable)?
Du har ret i din "eftertanke". Den næste pivottabel, der oprettes på en ny datasource (database) får så PivotCache nr. 2, altså PivotCaches(2). På den kan der ligeledes laves en mængde nye pivottabeller. Problemet er faktisk kun at holde rede i pivotcachenumrene.
en måde at gøre det på er at først definere pivotcacherene, derefter oprette tabeller der knytter sig til disse. I dette eksempel laver jeg 3 cacher og på disse 3 bygger jeg 5 pivottabeller. Sub test2() Dim test1 As PivotCache Dim test2 As PivotCache Dim test3 As PivotCache
Set test1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Database1!R1C1:R22C10") Set test2 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Database2!R1C1:R22C10") Set test3 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Database3!R1C1:R22C10")
Lige et novice spørgsmål - det er ikke lettere at kopiere arket når du først har dannet arket derved navngiver Excel selv arkene. Kunne det være en fordel?
Mange tak for det udførlige svar, bak! Ikke bare fik jeg svar på mit spørgsmål, jeg lærte også noget nyt omkring muligheden for at slå skærm opdateringen fra! :)
Og til Palle ib: Det er netop muligheden for at have endog rigtig mange pivottabeller på samme ark, som jeg har brug for...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.