Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pivot: 1 Datenschnitt und 1 Zeitachse 2 Quellen

Forumthread: Pivot: 1 Datenschnitt und 1 Zeitachse 2 Quellen

Pivot: 1 Datenschnitt und 1 Zeitachse 2 Quellen
26.03.2018 20:13:21
Alesandro
Liebe Forumsgemeinde,
ich habe ein Problem mit dem ich mich gerne an Euch wenden möchte ;-)
In der beigefügten Datei werte ich,
mittels 2 Pivottabellen (im Tabellenblatt "EXECUTED TESTS - PROJEKT - MA")
2 unterschiedliche Quelldateien aus.
Es werden die geplanten Testfälle (Quelle Tabellenblatt "Verplanungsdaten_OSQ")
mit den ausgeführten Testfällen (Quelle Tabellenblatt "Rohdaten_letzte_Testausfuehrung" verglichen und in den Zeilen 12 - 15 die Berechnungen angezeigt.
Problem:
Da es sich um unterschiedliche Quelldateien handelt, muss man 2 Datenschnitte und 2 Zeitachsen anlegen.
Es nervt mich jedoch, dass ich 2-mal dasselbe auswählen muss.
Frage:
Wäre es möglich, dass man nur einen Datenschnitt (GEPLANT FÜR)
und Zeitachse (GEPLANTER ZEITRAUM)anlegt und mittels VBA die ausgewählten Werte in die PivotTable1 übernimmt.
Dh PivotTable2 wird über Datenschnitt und Zeitachse gefiltert und die selben Filterwerte in die PivotTable1 via VBA übernommen.
Ich hoffe, dass mein Anliegen verständlich beschrieben wurde.
Es würde mich sehr freuen,
wenn mir jemand helfen könnte.
https://www.herber.de/bbs/user/120685.xlsm
lg Alesandro
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Pivot: 1 Datenschnitt und 1 Zeitachse 2 Quellen
27.03.2018 17:13:07
Luschi
Hallo
schreibe diesen Code ins Klassenmodul der Tabelle19(EXECUTED TESTS - PROJEKT - MA):

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim sc As SlicerCache, sc1 As SlicerCache, sci As SlicerItem
Set sc = ActiveWorkbook.SlicerCaches("Datenschnitt_Name")    'ausgeführt
Set sc1 = ActiveWorkbook.SlicerCaches("Datenschnitt_Name1")  'geplant
Application.EnableEvents = False
sc.ClearManualFilter
For Each sci In sc1.SlicerItems
'Debug.Print sci.Name
sc.SlicerItems(sci.Name).Selected = sci.Selected
Next sci
'Target.RefreshTable
Application.EnableEvents = True
Set sc = Nothing
Set sc1 = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Pivot: 1 Datenschnitt und 1 Zeitachse 2 Quellen
28.03.2018 08:06:41
Alesandro
Hallo Luschi,
vielen Dank für deine Bemühungen.
Ein Kollege hat mir inzwischen folgenden funktionierenden Code geschrieben.
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Dim date1 As Date
Dim date2 As Date
date1 = ActiveWorkbook.SlicerCaches("NativeZeitachse_Von").TimelineState.FilterValue1
date2 = ActiveWorkbook.SlicerCaches("NativeZeitachse_Von").TimelineState.FilterValue2
' MsgBox date1 & " " & date2
ActiveWorkbook.SlicerCaches("NativeZeitachse_EXECUTION_DATE").TimelineState. _
SetFilterDateRange date1, date2
Dim oSlicercache1    As SlicerCache
Dim oSlicercache2    As SlicerCache
Dim oSlicerItem1     As SlicerItem
Dim oSlicerItem2     As SlicerItem
Dim oSlicerItem      As SlicerItem
Application.Volatile
Set oSlicercache1 = ActiveWorkbook.SlicerCaches("Datenschnitt_Name3")
Set oSlicercache2 = ActiveWorkbook.SlicerCaches("Datenschnitt_Name2")
oSlicercache2.ClearAllFilters
On Error Resume Next
For Each oSlicerItem In oSlicercache2.SlicerItems
Set oSlicerItem1 = oSlicercache1.SlicerItems(oSlicerItem.Name)
If oSlicerItem1 Is Nothing Then
'  MsgBox oSlicerItem.Name
oSlicerItem.Selected = False
End If
Set oSlicerItem1 = Nothing
Next oSlicerItem
On Error Resume Next
For Each oSlicerItem1 In oSlicercache1.SlicerItems
Set oSlicerItem2 = oSlicercache2.SlicerItems(oSlicerItem1.Name)
If Not oSlicerItem2 Is Nothing Then
'MsgBox oSlicerItem1.Name & oSlicerItem1.Selected
oSlicerItem2.Selected = oSlicerItem1.Selected
End If
Set oSlicerItem2 = Nothing
Next oSlicerItem1
On Error GoTo 0
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Rows.EntireRow.Hidden = False
Rows(Range("A19").End(xlDown).Row + 3 & ":300").EntireRow.Hidden = True
End Sub
lg Alesandro
Anzeige
AW: Pivot: 1 Datenschnitt und 1 Zeitachse 2 Quellen
28.03.2018 09:29:17
Luschi
Hallo Alesandro,
jetzt darfst Du 3mal überlegen, warum Dein Kollege 'On Error Resume Next' benötigt
und ich nicht und warum ich mit wesentlöich weniger Code auskomme und das gleiche mache.
Viel Spaß beim Überlegen.
Gruß von Luschi
aus klein-Paris
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Einen Datenschnitt und eine Zeitachse für mehrere Pivot-Tabellen einrichten


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass du deine Daten in zwei verschiedenen Quelldateien hast, die du mit Pivot-Tabellen analysieren möchtest.

  2. Pivot-Tabellen erstellen: Erstelle zwei Pivot-Tabellen aus den jeweiligen Datenquellen in Excel. Gehe dazu auf die Registerkarte "Einfügen" und wähle "PivotTable".

  3. Datenschnitt hinzufügen:

    • Wähle eine der Pivot-Tabellen aus.
    • Gehe zu "Analyse" > "Datenschnitt einfügen".
    • Wähle die Felder aus, die du filtern möchtest.
  4. Zeitachse hinzufügen:

    • Wähle eine der Pivot-Tabellen aus.
    • Gehe zu "Analyse" > "Zeitachse einfügen".
    • Wähle das Datum oder das Zeitfeld aus, das du nutzen möchtest.
  5. VBA-Code einfügen: Um einen Datenschnitt für mehrere Pivot-Tabellen zu verwenden, füge den folgenden Code in das Klassenmodul der entsprechenden Tabelle ein:

    Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
       Dim sc As SlicerCache, sc1 As SlicerCache, sci As SlicerItem
       Set sc = ActiveWorkbook.SlicerCaches("Datenschnitt_Name")    'ausgeführt
       Set sc1 = ActiveWorkbook.SlicerCaches("Datenschnitt_Name1")  'geplant
       Application.EnableEvents = False
       sc.ClearManualFilter
       For Each sci In sc1.SlicerItems
           sc.SlicerItems(sci.Name).Selected = sci.Selected
       Next sci
       Application.EnableEvents = True
    End Sub

Häufige Fehler und Lösungen

  • Pivot-Zeitachse funktioniert nicht: Überprüfe, ob dein Zeitfeld in der Datentabelle korrekt formatiert ist. Es sollte als Datum formatiert sein, damit die Zeitachse funktioniert.

  • Datenschnitt mehrere Pivot-Tabellen: Wenn die Datenschnitte nicht synchronisiert sind, stelle sicher, dass die SlicerCaches richtig benannt sind und dass der VBA-Code korrekt eingefügt wurde.


Alternative Methoden

Wenn du nicht auf VBA zurückgreifen möchtest, kannst du auch die folgenden Methoden ausprobieren:

  • Verwendung von Power Pivot: Mit Power Pivot kannst du Daten aus mehreren Quellen in einem Modell zusammenführen und dann einen Datenschnitt für alle verknüpften Pivot-Tabellen verwenden.

  • Verknüpfte Pivot-Tabellen: Erstelle eine Pivot-Tabelle, die auf einer konsolidierten Datenquelle basiert, und verwende dann einen einzigen Datenschnitt.


Praktische Beispiele

  • Beispiel für Datenschnitt und Zeitachse: Angenommen, du analysierst Testfälle aus verschiedenen Quellen. Du hast eine Pivot-Tabelle für geplante Testfälle und eine für ausgeführte Testfälle. Mit einem Datenschnitt (z.B. "Status") und einer Zeitachse (z.B. "Testdatum") kannst du die Daten für beide Tabellen gleichzeitig filtern.

  • Kalenderwoche als Zeitachse: Wenn du die Daten nach Kalenderwochen filtern möchtest, stelle sicher, dass dein Datum in einem geeigneten Format vorliegt, um die Zeitachse korrekt zu nutzen.


Tipps für Profis

  • VBA optimieren: Reduziere die Verwendung von On Error Resume Next, um potenzielle Fehler zu vermeiden. Versuche, den Code so einfach und verständlich wie möglich zu halten.

  • Datenschnitte für mehrere Pivot-Tabellen: Wenn du häufig mit mehreren Pivot-Tabellen arbeitest, überlege, ob du ein gemeinsames Datenmodell verwendest, um die Verwaltung der Datenschnitte zu vereinfachen.


FAQ: Häufige Fragen

1. Kann ich einen Datenschnitt für mehrere Pivot-Tabellen in unterschiedlichen Dateien verwenden?
Nein, Datenschnitte können nur innerhalb einer Arbeitsmappe verwendet werden. Du müsstest die Daten in einer Datei konsolidieren.

2. Funktioniert die Zeitachse mit allen Excel-Versionen?
Die Zeitachse ist in Excel 2013 und neueren Versionen verfügbar. Ältere Versionen unterstützen diese Funktion nicht.

3. Wie kann ich die Auswahl im Datenschnitt zurücksetzen?
Du kannst die Auswahl im Datenschnitt einfach durch einen Klick auf die Schaltfläche "Alle auswählen" zurücksetzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige