Office: (Office 2013) VBA Änderung der PIVOT Datenquelle nach Muster-Tabellenblatt-Kopie

Helfe beim Thema VBA Änderung der PIVOT Datenquelle nach Muster-Tabellenblatt-Kopie in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich suche in diesem Forum Unterstützung, da ich ein der VBA Programmierung in einem Punkt nicht weiter komme. Hintergrund/Aufbau:... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von RobsenRob, 13. Februar 2018.

  1. RobsenRob Neuer User

    VBA Änderung der PIVOT Datenquelle nach Muster-Tabellenblatt-Kopie


    Hallo zusammen,
    ich suche in diesem Forum Unterstützung, da ich ein der VBA Programmierung in einem Punkt nicht weiter komme.
    Hintergrund/Aufbau:
    Ich habe zur Bearbeitung für mehrere Anwender gleichzeitig eine Exceldatei erschaffen, welche in einem Tabellenblatt einzutragene Felder für jeweils eine Kalenderwoche bietet. Diese Eintragefelder werden mit Hilfe von 6 Pivot Tabellen und deren Diagramme mit jeweils 6 einzelnen Datenquellentabellen innerhalb des Muster-Tabellenblattes ausgewertet.
    Nun ist das Muster-Tabellenblatt fertig. Nun soll durch ein Makro weitere Tabellenblätter nach dem Muster für gezielte Kalenderwochen erstellt werden. Bis hier hin kein Problem.
    In dem neu erstellten Tabellenblatt mit dem Tabellenblattnamen der jeweiligen Kalenderwoche beziehen sich nun aber die 6 Pivot Tabellen und deren Diagramme immer mit der Datenquelle auf die Tabellen der Muster-Vorlage.
    Wie kann ich per VBA den Datenbereich, der sich im neuen Tabellenblatt lediglich im Tabellenblattnamen ändert, umschreiben ?

    Ich habe nun schon zwei Tage vergeblich im Netz nach passenden Beispielen gesucht und erhoffe mir hier in diesem Forum praktische Hilfe.
    Ich hoffe, dass ich mein Problem ausreichend geschildert habe.
    Bei Bedarf kann ich die Problematik tiefgründiger schildern.

    Vielen Dank vorab.
    Robert
     
    RobsenRob, 13. Februar 2018
    #1
  2. lupo1
    lupo1 Tutorial Guru
    Sub ZweiBlaetterMitPivotUndGeaenderterDatenquelle()

    'neues Workbook mit nur einem Blatt (dt. "Tabelle1") anlegen
    'Daten in A1:B4 eintragen

    Workbooks.Add xlWorksheet
    [A1:B1] = Split("A B"): [A2:B2] = Array(1, 1): [A3:B3] = Array(1, 2): [A4:B4] = Array(5, 4)

    'Erste Pivot-Tabelle in D1 erzeugen und bestimmen
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "Tabelle1!R1C1:R4C2", Version:=xlPivotTableVersion14).CreatePivotTable _
    TableDestination:="Tabelle1!R1C4", TableName:="PivotTable1", _
    DefaultVersion:=xlPivotTableVersion14

    ActiveSheet.PivotTables("PivotTable1").PivotFields("A").Orientation = xlRowField
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
    "PivotTable1").PivotFields("B"), "Summe von B", xlSum

    'Zweite Pivot-Tabelle in H1 erzeugen und bestimmen
    ActiveWorkbook.Worksheets("Tabelle1").PivotTables("PivotTable1").PivotCache. _
    CreatePivotTable TableDestination:="Tabelle1!R1C8", TableName:= _
    "PivotTable2", DefaultVersion:=xlPivotTableVersion14

    ActiveSheet.PivotTables("PivotTable2").PivotFields("A").Orientation = xlColumnField
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
    "PivotTable2").PivotFields("B"), "Summe von B", xlSum

    'eine neue Tabelle aus Tabelle1 kopieren (inkl. der beiden Pivot-Tabellen)
    'diese beziehen sich jedoch ohne einen Eingriff weiterhin auf Datenquelle Tabelle1

    Sheets("Tabelle1").Copy After:=Sheets(1)

    'Anpassung eines Wertes der Datenquelle auf dem neuen Blatt (zur Kontrolle)
    [B4] = 6

    'manuelle Änderung der Datenquelle von PT1/neu auf die des neuen Blatts
    'Die Datenquelle von PT2/neu hingegen verbleibt auf dem alten Blatt!

    ActiveSheet.PivotTables("PivotTable1").ChangePivotCache ActiveWorkbook. _
    PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "Tabelle1 (2)!R1C1:R4C2", Version:=xlPivotTableVersion14)


    'von den 4 PT nutzen nun 3 die alte Datenquelle; nur eine die neue!
    'Die 3 blauen Befehle nacheinander:
    '- Neue PT mit neuem Cache
    '- Neue PT mit bestehendem Cache
    '- Bestehende PT mit neuem (bzw. geändertem) Cache
    'Seltsam: Der Cache bekommt keinen Namen.

    End Sub


    Nicht geprüft habe ich angesichts der Namenlosigkeit des Caches, ob ein erneutes Zuweisen des alten Caches zu insgesamt 2 oder 3 Caches führt. Die Antwort ließe sich jedoch bei großen Datenquellen anhand der Dateigröße ermitteln. Den Bereich, auf den sich der Cache bezieht, kann man natürlich benennen. Das aber ist dann ein Bereichsname. Einen Cachenamen scheint es hingegen nicht zu geben. Oder? (im Eigenschaftenfenster nachforschen)
     
    Zuletzt bearbeitet: 14. Februar 2018
  3. RobsenRob Neuer User
    Hallo lupo1,

    vielen Dank für Deine Antwort.
    Der part: ChangePivot.Cache funktioniert leider nicht.
    Das neu erzeugte Tabellenblatt hat sofort nach Erstellung einen bestimmten Namen. In dem Fall die jeweilige Kalenderwoche( z.B. 2, 3, 5, 23 , ...)
    Wie schaffe ich es, dass eben dieser Tabellenname in der SourceData eingeschrieben wird.
    Bei Deinem Beispiel: Tabelle1(2) kommt eine Fehlermeldung, dass die Pivot Quelldatei nicht geöffnet werden kann. Ok, existiert auch nicht.
    Wenn ich aber nun den tatsächlichen Tabellennamen in die SourceData schreibe, kommt die Fehlermeldung, die PivotTables Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden.

    Auf Deine Frage mit dem Cachenamen, was im Eigenschaftenfenster zu prüfen wäre, komme ich inhaltlich auch nicht weiter.
    Sorry.
    Irgendwie ist mir die Erstellung der Quelldaten über eine VBA ein Rätsel.
    Ich kenne das Tabellenblatt (aktives) und den jeweiligen Zellbereich in einem Range. Dennoch gelingt mir der Quark nicht, diese festen Werte in so eine Anweisung zu schreiben.

    Bisher waren die Befehle über ein längeres Selbststudium selbst erklärend und irgendwann auch logisch anwendbar.

    Hilft es , wenn ich eine Beispieldatei erstelle ?

    Vielen Dank nochmal vorab.
    Robert
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
    RobsenRob, 14. Februar 2018
    #3
Thema:

VBA Änderung der PIVOT Datenquelle nach Muster-Tabellenblatt-Kopie

Die Seite wird geladen...
  1. VBA Änderung der PIVOT Datenquelle nach Muster-Tabellenblatt-Kopie - Similar Threads - VBA Änderung PIVOT

  2. Hyperlink VBA / Automatische Ergänzung

    in Microsoft Excel Hilfe
    Hyperlink VBA / Automatische Ergänzung: Guten Tag zusammen, ich habe folgendes Problem: Ich habe eine Datei mit insgesamt ca 50. Tabellenblättern. Auf dem Tabellenblatt Tabelle 1 ist die Gesamtübersicht mit allen Gesellschaften,...
  3. Änderungen nachverfolgen mit VBA aktivieren

    in Microsoft Excel Hilfe
    Änderungen nachverfolgen mit VBA aktivieren: Hallo Zusammen Mein Makro macht bis jetzt folgendes: 1. Neue Mappe erstellen 2. Daten gezielt aus einer Mappe in die neue Mappe kopieren 3. Speichern der neuen Mappe auf Desktop unter bestimmtem...
  4. Excel Datumsangabe bei Inhaltsänderung von Zelle

    in Microsoft Excel Hilfe
    Excel Datumsangabe bei Inhaltsänderung von Zelle: Hallo zusammen, ich sitze derzeit an einer Tabelle mit Namen (Spalte B) und Telefonnummern (Spalte C), in Spalte D soll jeweils das Datum ausgegeben werden, wenn zuletzt etwas am Namen oder an...
  5. If-Then-Abfrage nach Änderung einer Auswahl

    in Microsoft Access Hilfe
    If-Then-Abfrage nach Änderung einer Auswahl: Hallo, ich stehe etwas auf dem SChlauch und hoffe auch Unterstützung durch die Community: Ich habe eine Access-Datenbank, bei der es u.a. um die Planung von Lehrgängen geht. Es gibt eine...
  6. Wenn Zelle geändert wird, Daten aus selber Spalte kopieren

    in Microsoft Excel Hilfe
    Wenn Zelle geändert wird, Daten aus selber Spalte kopieren: Hallo zusammen, ich suche eine Möglichkeit eine Spalte bei Änderung einer bestimmten Zelle zu kopieren und an bestimmter Stelle einzufügen. Aufbau: Bei Änderung von Zelle 07 in "Nein"...
  7. Makro automatisch bei Änderungen ausführen - VBA Worksheet_Change

    in Microsoft Excel Hilfe
    Makro automatisch bei Änderungen ausführen - VBA Worksheet_Change: Hallo zusammen, ich habe einen Code gefunden der automatisch im Hintergrund ein Makro laufen lässt. Allerdings funktioniert dieser nur mit Währungen was an dem "CCur" liegen könnte. Option...
  8. Vba Änderungen Verfolgen Protokoll "Alter Wert" hinzufügen

    in Microsoft Excel Hilfe
    Vba Änderungen Verfolgen Protokoll "Alter Wert" hinzufügen: Guten Tag, ich würde gerne alle Änderungen die in einer Excel Tabelle gemacht werden in einem Extra Blatt bzw Datei Protokollieren. Jedoch Fehlt mir der Wert " Alter Wert ". Könnte man diesen...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden