Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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

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

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

155 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige