ich habe ein Problem mit einem Diagramm, dass ich dynamisch machen will. Das Programm wurde noch in excel 2000 mit dem Rekorder aufgenommen. Es funktioniert so aber alles richtig. Jetzt möchte ich nur, dass sich das Diagramm automatisch an die Anzahl der Werte anpasst. In meiner Arbeitsmappe gebe ich in "I7" an, wie viel Werte das Diagramm enthält -es werden dann genau soviel Werte ausgegeben.
Ich dachte, dass ich das Diagramm dynamisch machen kann, indem ich die Tabelle über Cells eingebe und dann die Anzahl der Werte aus "I7" hinzu addiere. Ich habe also den vorigen Eintrag von Range durch Cells(23, 30), Cells(Cells(7, 9), 33) ersetzt. Vorher war das mit Buchstaben eingetragen. Und dann habe ich dasselbe noch drei Zeilen später gemacht.
Im kopierten Programm habe ich beides fett und schräg makiert.
Das Problem ist, dass die Fehlermeldung, "Die Methode Cells für das Objekt Global ist fehlgeschlagen", kommt. Ich habe schon versucht vor jeden Cells Befehl Worksheet(Tabelle1) zu schreiben. Die Fehlermeldung kam aber trotzdem.
Option Explicit
Sub DiagrammA ()
' DiagrammA Makro
' Tastenkombination: Strg+d
Range(Cells(23, 30), Cells(Cells(7, 9), 33)).Select
ActiveWindow.SmallScroll Down:=-57
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range(Cells(23, 30), Cells(Cells( _
7, 9), 33)), _
PlotBy:=xlColumns
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
ActiveChart.SetElement (msoElementPrimaryValueAxisTitleRotated)
ActiveChart.SetElement (msoElementChartTitleAboveChart)
ActiveChart.SetElement (msoElementLegendBottom)
ActiveChart.SetElement (msoElementChartTitleCenteredOverlay)
ActiveChart.SetElement (msoElementChartTitleAboveChart)
ActiveChart.SeriesCollection(1).XValues = "=Tabelle1!R23C29:R103C29"
ActiveChart.SeriesCollection(1).Name = "=""AAAA"""
ActiveChart.SeriesCollection(2).XValues = "=Tabelle1!R23C29:R103C29"
ActiveChart.SeriesCollection(2).Name = "=""BBBB"""
ActiveChart.SeriesCollection(3).XValues = "=Tabelle1!R23C29:R103C29"
ActiveChart.SeriesCollection(3).Name = "=""CCCC"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Periode"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = _
"Ergebnis in Prozent"
End With
End Sub
Ich hoffe ihr könnt mir dabei helfen
Viele Grüße
Jakob