PivotChart dynamisieren
14.08.2023 15:01:17
Günther
Es ist zum verrückt werden. Bei jeder neuer Idee habe ich wieder ein Problem. Ich werde zwar langsam besser, aber es reicht mal wieder nicht.
Ich habe folgende Code für das erstellen eines Pivot Charts gefunden. Der funktioniert einwandfrei. Allerdings nur 1x.
Folgendes soll das Makro aber können.
Die Quelle soll eine andere Datei sein (c:\....\gbu_betreuungszeiten.xlsm) mit dem Bereichsnamen "Betreuungszeiten".
Bei jedem Makro Start soll, falls vorhanden, die Daten aktualisiert werden. Falls nicht vorhanden, dann erstellen.
Dann nur noch den "Chart" wiederum in eine dritte Excel Tabelle kopieren.
Hat mir hier jemand eine Lösung? Vermutlich ganz einfach....ich schnalls aber nicht.
Grüße
Günther
Sub PV_Chart1()
'
' PV_Chart1 Makro
'
Range("Tabelle1[#All]").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Tabelle1", Version:=6).CreatePivotTable TableDestination:="Tabelle50!R3C1" _
, TableName:="PivotTable14", DefaultVersion:=6
Sheets("Tabelle50").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable14")
.ColumnGrand = True
.HasAutoFormat = True
.DisplayErrorString = False
.DisplayNullString = True
.EnableDrilldown = True
.ErrorString = ""
.MergeLabels = False
.NullString = ""
.PageFieldOrder = 2
.PageFieldWrapCount = 0
.PreserveFormatting = True
.RowGrand = True
.SaveData = True
.PrintTitles = False
.RepeatItemsOnEachPrintedPage = True
.TotalsAnnotation = False
.CompactRowIndent = 1
.InGridDropZones = False
.DisplayFieldCaptions = True
.DisplayMemberPropertyTooltips = False
.DisplayContextTooltips = True
.ShowDrillIndicators = True
.PrintDrillIndicators = False
.AllowMultipleFilters = False
.SortUsingCustomLists = True
.FieldListSortAscending = False
.ShowValuesRow = False
.CalculatedMembersInFilters = False
.RowAxisLayout xlCompactRow
End With
With ActiveSheet.PivotTables("PivotTable14").PivotCache
.RefreshOnFileOpen = False
.MissingItemsLimit = xlMissingItemsDefault
End With
ActiveSheet.PivotTables("PivotTable14").RepeatAllLabels xlRepeatLabels
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("Tabelle50!$A$3:$C$20")
With ActiveChart.PivotLayout.PivotTable.PivotFields("Firma")
.Orientation = xlRowField
.Position = 1
End With
ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _
PivotTable.PivotFields("Einsatzzeit"), "Summe von Einsatzzeit", xlSum
ActiveChart.PivotLayout.PivotTable.AddDataField ActiveChart.PivotLayout. _
PivotTable.PivotFields("Offen"), "Summe von Offen", xlSum
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("Format Object").Visible = False
ActiveSheet.Shapes("Diagramm 1").IncrementLeft -9.75
ActiveSheet.Shapes("Diagramm 1").IncrementTop -27.75
End Sub