Hallo zusammen,
aktuell versuche ich mich an der automatischen Erstellung von Diagrammen. Leider stürzt Excel dabei reproduzierbar ab und ich verstehe die Fehlerursache nicht.
Ablauf: Hauptprogramm geht durch die vorhandenen Sheets, aktiviert den ersten, erzeugt aus einer Spalte ein Diagramm, fragt den Benutzer nach einem Wert, kopiert ein paar Zeilen in einen neuen Sheet, aktiviert diesen und löscht dann den alten.
Mein Code:
Sub DiagrammErzeugen(diagramColumn As String, diagramLastRow As Integer, aktuelleProbe As String)
Dim oChartObj As ChartObject
' Sicherheitshalber vorhandene Charts löschen
For Each oChartObj In Sheets(aktuelleProbe).ChartObjects
oChartObj.Delete
Next
' Nochmal leer initialisieren
Set oChartObj = Nothing
' und zur Sicherheit auf den Sheet wechseln, auf den das Diagramm soll
Sheets(aktuelleProbe).Activate
' ################################
' an dieser Stelle stürzt Excel ab
' entweder beim ersten Durchlauf (mit Application.EnableEvents = True)
' oder beim zweiten Durchlauf (wenn Application.EnableEvents = False)
'
Set oChartObj = Sheets(aktuelleProbe).ChartObjects.Add(Top:=100, Left:=100, Width:=1200, Height:=600)
' ################################
oChartObj.Chart.SetSourceData Sheets(aktuelleProbe).Range(diagramColumn & "1:" & diagramColumn & diagramLastRow)
oChartObj.Chart.ChartType = xlXYScatterLines
oChartObj.Chart.HasTitle = True
oChartObj.Chart.ChartTitle.Select
oChartObj.Chart.ChartTitle.Text = aktuelleProbe
oChartObj.Chart.HasLegend = False
oChartObj.Chart.Axes(xlCategory).MajorUnit = 2
oChartObj.Chart.Axes(xlCategory).HasMajorGridlines = True
End Sub
Muss ich hier noch irgendwie "aufräumen" oder sowas? Oder verweise ich nicht ganz korrekt auf mein ChartObject, weil ich ständig zwischen verschiedenen Sheets hin- und herspringe?
Danke für Hinweise
|