Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vba Pivottabelle "XlConsolidate" Array ändern

Vba Pivottabelle "XlConsolidate" Array ändern
09.10.2016 01:21:32
Olaf
Hallo liebe Excelgemeinde,
Ich versuche in einer Exceltabelle mit mehreren Konsolidierungsbereichen neue Quellen einzufügen, sowie auch bestehende zu entfernen, leider bis jetzt ohne Erfolg :-(
Die Pivottabelle ist bereits mit dem Pivotassistenten erstellt, mehrere Konsolidierungsbereiche mit 1 Seitenfeld für die Eingabe eines Bereichsnamens für weitere Filteraufgaben.
Bisher habe ich mit Hilfe von folgendem Code angefangen:

option explicit
'-----------------Variablen
Dim PIT as Pivottable
Dim BEREICHA as STRING, BEREICHB as STRING, BEREICHC as STRING
'----------Pivottabelle befüllen
Private Function TEST()
'-----------------Variablen füllen
BEREICHA = "=Tabelle1!R1C1:R2C2"
BEREICHB = "=TABELLE2!R1C1:R2C2"
BEREICHC = "=TABELLE3!R1C1:R2C2"
'-----------------Bereichsnamen im Namensmanager eingetragen
with ThisWorkBook
.Names.Add Name:="Test1", RefersToR1C1:=BEREICHA
.Names.Add Name:="Test2", RefersToR1C1:=BEREICHB
.Names.Add Name:="Test3", RefersToR1C1:=BEREICHC
'-----------------Bereich in Pivottabelle aufnehmen/ Bereich ändern
.Tabelle1.activate
for each PIT in ActiveSheet.Pivottables 'nur eine Pivottabelle vorhanden
PIT.PivotTableWizard SourceType:=xlConsolidation, _
SourceData:=Array (Array("Test1", "BEREICHA"))
next PIT
end with
End Function

Das Ergebnis bis jetzt: _https://www.herber.de/bbs/user/108677.jpg
Soweit so gut... Jetzt möchte ich im Nachgang zusätzliche Bereiche in das Array der
Pivottabelle aufnehmen (BEREICHB,BEREICHC) bzw, aus dem bestehenden Array einzelne Arrays wieder löschen (BEREICHA). Wie muß ich über Variablen das bestehende Array auslesen und ändern? Das habe ich versucht, aber mit Arrays kenne ich mich nicht aus...

'Dim PIC
'DIM PICB
'DIM PICC
'DIM PICA
'DIM I
'PIC=PIT.PivotCache.SourceData         'Hauptarray mit seinen Unterarrays
'I = UBound(PIC)                       'Anzahl Unterarrays im Hauptarray
'PICB = Array("TEST2", "BEREICHB"))    'neu einzufügendes Array
'PICC = Array("TEST3", "BEREICHC"))    'neu einzufügendes Array
'PICA = Array("TEST1", "BEREICHA"))    'zu löschendes Array
'PIT.PivotCaches.Add(SourceType, [SourceData]) läuft nicht...
'PIT.ChangePivotCache ThisWorkbook.PivotCaches. _
Create(SourceType:=xlconsolidate, SourceData:=PIC & PICB ) läuft auch nicht...

Weiter weiß ich nicht :-(
Wer kann mir hierbei helfen? Ich freue mich über jede Rückantwort. Vielen Dank im voraus

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vba Pivottabelle "XlConsolidate" Array ändern
09.10.2016 02:35:56
Olaf
ein Nachtrag:
Einfügen zu einem neuen Array funktioniert mit folgendem Teil:

PIC = PIT.PivotCache.SourceData
PICB = Array("TEST2", "BEREICHB"))
PIC = Array(PIC, PICB)
PIT.PivotTableWizard SourceType:=xlConsolidation, SourceData:=PIC
Nun müßte nur noch BEREICHA aus dem Array entfernt werden...
AW: Vba Pivottabelle "XlConsolidate" Array ändern
09.10.2016 17:35:47
Luschi
Hallon Olaf,
habe mich mit Deinem Problem jetzt auch 'ne ganze Weile beschäftigt.
Aber hier ist wieder mal 1 Beispiel, daß bei Konsolodierungen von Pivottabellen mit mehreren Bereichen die Makro-Recorder-Aufzeichnung nicht viel Wert ist.
Das Abspielen dieser Aufzeichnung zeigt dann die Pivottabelle nur noch mit dem 1. Bereich an.
Habe jetzt ca. 15 Inet-Seiten durchstöbert, wo großspurig das Konsolodieren mit mehreren Bereichen per Vba angekündigt wird, das Demobeispiel dann aber sehr theoretisch bleibt bzw. nur auf den 1. Bereich aktualisiert.
Mal sehen was der heutige Abend noch so bringt - auf jeden Fall ein interessantes Thema.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Vba Pivottabelle "XlConsolidate" Array ändern
10.10.2016 22:42:41
Olaf
Hallo Luschi,
vielen Dank für Deine Mithilfe. Ich habe mittlerweile ergebnislos mit dem Thema UNION() experimentiert.

PIC = UNION (PICA, PICB, PICC)
Vielleicht hilft dieser Ansatz um im Multiarray den entsprechenden Eintrag "PICA" auszufiltern. Hab's aber noch nicht hinbekommen.
Beste Grüße Richtung Bockho...

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige