Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Diagramm aktualisieren | Herbers Excel-Forum


Betrifft: Diagramm aktualisieren von: Ganna
Geschrieben am: 12.01.2010 12:26:36

Hallo,

nachdem ich ein Diagramm erstellt habe, will ich bei der neuen Berechnung mit Makros vorheriges Diagramm löschen und durch aktuelles ersetzen. In der folgenden Code bekomme ich Fehlermeldung, dass die "Delete Methode für den Sheet fehlgeschlagen ist". Wie kann ich mein Problem lösen?

'Erstellen der Graphik-Massenbilanz
Set Bereich = Range(Cells(3, 1), Cells(7, 2))
Application.DisplayAlerts = False
Charts.Delete
Charts.Add
ActiveChart.ChartType = xl3DPie
With ActiveChart
.SetSourceData Source:=Bereich, PlotBy:=xlColumn
.HasTitle = True
.ChartTitle.Characters.Text = "Massenbilanz (kg)"
.HasLegend = True
ActiveChart.Location Where:=xlLocationAsObject, Name:="Massenbilanz"

Mfg
Ganna

  

Betrifft: Activesheet.Chartobjects.Delete oder NICHT LÖSCHEN von: NoNet
Geschrieben am: 12.01.2010 14:50:28

Hallo Ganna,

Zum Löschen eines (bzw. ALLER) Diagrammobjektes auf einem Tabellenblatt benötigst Du folgende VBA-Anweisung :

Activesheet.Chartobjects.Delete

IMHO musst Du das Diagramm jedoch gar nicht unbedingt löschen, wenn Du es sofort neu erzeugen möchtest ! Hier genügt es, einfach die Datenquelle des Diagramms anzupassen :

Sub DiagrammAktualisieren()
    ActiveSheet.ChartObjects(1).Chart.SetSourceData _
        Source:=ActiveSheet.Range(Cells(3, 1), Cells(7, 2)), PlotBy:=xlColumns
End Sub
Gruß, NoNet


  

Betrifft: AW: Diagramm aktualisieren von: Beverly
Geschrieben am: 13.01.2010 11:26:54

Hi Ganna,

im Arbeitsblatt ist es kein Chart sondern ein ChartObject. Außerdem musst du bei Diagrammobjecten den Arbeitsblattbezug mit angeben.Ddeshalb müsste deine Zeile so heißen:

ActiveSheet.ChartObjects.Delete
Man kann ein Diagramm auch sofort als Diagrammobjekt ins Tabellenblatt einfügen ohne den Umweg über ein Diagrammblatt:
Sub DiagrammErstellen()
    Dim Bereich As Range
    Dim chDiagramm As ChartObject
    Set Bereich = Range(Cells(3, 1), Cells(7, 2))
    Application.DisplayAlerts = False
    With Worksheets("Massenbilanz")
        If .ChartObjects.Count > 0 Then .ChartObjects.Delete
        Set chDiagramm = .ChartObjects.Add(150, 50, 450, 300)
        With chDiagramm.Chart
            .ChartType = xl3DPie
            .SetSourceData Source:=Bereich, PlotBy:=xlColumn
            .HasTitle = True
            .ChartTitle.Characters.Text = "Massenbilanz (kg)"
            .HasLegend = True
        End With
    End With
    Set Bereich = Nothing
    Set chDiagramm = Nothing
End Sub


GrußformelBeverly's Excel - Inn


Beiträge aus den Excel-Beispielen zum Thema "Diagramm aktualisieren"