Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA: Diagramm mit Daten füttern





Frage

Hi, ich habe folgendes Problem. Ich will ein Diagramm dynamisch mit Daten füttern. Zunächst habe ich dazu immer ein neues mit folgendem Code erstellt, den ich im Netz gefunden und nach meinen Bedürfnissen angepasst habe: Public Sub CreateChartObjectRange() Dim wksData As Worksheet Dim rngData As Range Dim nRowsCnt As Long Dim nColsCnt As Integer Dim objChart As Chart Dim objChartObj As ChartObject Set wksData = ThisWorkbook.Worksheets("aw") With wksData nRowsCnt = .Cells(.Rows.Count, 1).End(xlUp).Row nColsCnt = .Cells(1, .Columns.Count).End(xlToLeft).Column Set rngData = .Range(.Cells(1, 1), .Cells(nRowsCnt, nColsCnt)) End With Application.ScreenUpdating = False Set wksData = ThisWorkbook.Worksheets("Auswertung") Set objChart = Application.Charts.Add With objChart .ChartType = xl3DPie .SetSourceData Source:=rngData, PlotBy:=xlColumns .HasTitle = True .ChartTitle.Text = "Test1" .Location Where:=xlLocationAsObject, Name:=wksData.Name End With Set objChartObj = wksData.ChartObjects( _ wksData.ChartObjects.Count) With objChartObj .Left = 10 .Top = 150 .Width = 300 .Height = 200 End With End Sub Dies hat auch einwandfrei funktioniert. Nun hab ich mir überlegt, das es eigentlich unnötig ist immer ein neues Diagramm zu erstellen, die Formatierung ist recht umständlich, ich müsste das alte immer wieder lösche etc. pp. Daher will ich nun einmal ein Diagramm manuell erstellen und dieses mit den neuen Daten immer wieder füttern. Die Daten bekommen ich ja mit dem Code: With wksData nRowsCnt = .Cells(.Rows.Count, 1).End(xlUp).Row nColsCnt = .Cells(1, .Columns.Count).End(xlToLeft).Column Set rngData = .Range(.Cells(1, 1), .Cells(nRowsCnt, nColsCnt)) End With in die Variable rngData gespeichert, doch wie bekomme ich diese nun in das Diagramm? Ich hab zunächst erstmal einiges auskommentiert und die Zeile .SetSourceData Source:=rngData, PlotBy:=xlColumns drin gelassen! Die Zeile Set objChart = Application.Charts.Add hab ich abgeändert auf Set objChart= wksdata.ChartObjects(1) was aber aufgrund der Unverträglichkeit der Typen (laut Excel) nicht funktioniert. Wie bekomme ich also die Daten aus rngdata in mein Diagramm? Vielen Dank schonmal für die Hilfe!

Antwort von