PivotChart zu PivotTable hizufügen
25.08.2021 09:09:41
S
seit ein paar Tagen schlage ich mich mit einer Auswertung herum. Hierfür werden per VBA Pivot Tabellen erstellt. Die Pivot Tabellen sollen um ein PivotChart (xlPie) ergänzt werden. Die Auswertungen, d.h. die PivotTable und das PivotChart stehen im Tabellenblatt PivotTable.
Den Code welchen ich bisher nutze, wurde mit dem Recorder aufgenommen und teilweise angepasst. Das PivotChart wird erstellt, allerdings sobald das Makro erneut ausgeführt wird, wird das PivotChart "Monatsauswertung" auf bspw. Diagramm 2 geändert. Gibt es eine Möglichkeit, dies zu vermeiden- d.h. dass sobald das Makro erneut ausgeführt wird, geprüft wird, ob ein PivotChart "Monatsauswertung" vorhanden ist und falls es nicht vorhanden ist, dieses eingefügt wird und falls es vorhanden ist, dass das Makro das bestehende PivotChart ausschließlich aktualisiert wird?
Ein weiterer Punkt ist: Kann im Code auch direkt die PivotTable "Monatsauswertung" ausgewählt werden, falls ja wie?
Das hier ist der Code für ein PivotChart:
Sub CreatingCharts()
Application.EnableEvents = False
Application.ScreenUpdating = False
Sheets("PivotTable").Select
ActiveSheet.Shapes.AddChart2(201, xlPie).Select
ActiveChart.SetSourceData Source:=range("'PivotTable'!$B$2:$c$5")
ActiveChart.ShowValueFieldButtons = False
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.ShowAxisFieldButtons = False
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.ChartTitle.Select
ActiveChart.ChartTitle.Text = "Monatsauswertung"
Selection.Format.TextFrame2.TextRange.Characters.Text = "Monatsauswertung"
With Selection.Format.TextFrame2.TextRange.Characters(1, 12).ParagraphFormat
.TextDirection = msoTextDirectionLeftToRight
.Alignment = msoAlignCenter
End With
With Selection.Format.TextFrame2.TextRange.Characters(1, 12).Font
.BaselineOffset = 0
.Bold = msoFalse
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.RGB = RGB(89, 89, 89)
.Fill.Transparency = 0
.Fill.Solid
.Size = 14
.Italic = msoFalse
.Kerning = 12
.Name = "+mn-lt"
.UnderlineStyle = msoNoUnderline
.Spacing = 0
.Strike = msoNoStrike
End With
ActiveChart.ChartArea.Select
ActiveChart.ChartType = xlPie
ActiveChart.SetElement (msoElementDataLabelInsideEnd)
ActiveChart.FullSeriesCollection(1).DataLabels.Select
With Selection.Format.TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorBackground1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
Selection.Format.TextFrame2.TextRange.Font.Size = 16
Selection.Format.TextFrame2.TextRange.Font.Bold = msoTrue
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Diagramm 1").Fill.Visible = msoFalse
ActiveSheet.Shapes("Diagramm 1").Line.Visible = msoFalse
ActiveSheet.Shapes("Chart 1").Name = "Monatsauswertung"
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Über jede Hilfe bin ich sehr dankbar!VG