Thema Datum  Von Nutzer Rating
Antwort
21.06.2017 11:37:15 Vroni
NotSolved
Blau eingebettetes Diagramm verschieben
21.06.2017 15:43:00 BigBen
NotSolved
28.06.2017 13:49:05 Gast47812
NotSolved

Ansicht des Beitrags:
Von:
BigBen
Datum:
21.06.2017 15:43:00
Views:
548
Rating: Antwort:
  Ja
Thema:
eingebettetes Diagramm verschieben

Hallo,

mit dem folgendem Code wird ein Diagramm erzeugt. Das erzeugte Diagramm kann über die Sub RefreshChart "aktualisiert" werden:

Option Explicit


Sub CreateChart()
    Dim objSh As Shape
    Set objSh = ActiveSheet.Shapes.AddChart2(227, xlLine)
    objSh.Chart.SetSourceData Source:=ThisWorkbook.Names("Daten").RefersToRange
    objSh.Left = 200
    objSh.Top = 10
    chartID = objSh.ID
End Sub

Sub RefreshChart()
    Dim wsh As Worksheet
    Dim ch As ChartObject
    Set wsh = ActiveSheet
    For Each ch In wsh.ChartObjects
        If ch.ShapeRange.ID = chartID Then
            ch.Delete
            CreateChart
            Exit For
        End If
    Next
End Sub


Property Get chartID() As Integer
    Dim wsh As Worksheet
    Dim iProp As Integer
    Set wsh = ActiveSheet
    For iProp = 1 To wsh.CustomProperties.Count
        If wsh.CustomProperties.Item(iProp).Name = "Chart" Then
            chartID = Val(wsh.CustomProperties.Item(iProp).value)
            Exit For
        End If
    Next
End Property

Property Let chartID(value As Integer)
    Dim wsh As Worksheet
    Dim bExists As Boolean
    Dim iProp As Integer
    Set wsh = ActiveSheet
    For iProp = 1 To wsh.CustomProperties.Count
        If wsh.CustomProperties.Item(iProp).Name = "Chart" Then
            wsh.CustomProperties.Item(iProp).value = value
            bExists = True
            Exit For
        End If
    Next
    If Not bExists Then
        wsh.CustomProperties.Add "Chart", value
    End If
End Property

Vorgehensweise

Damit die Sub RefreshChart das richtige Diagramm verändert, wird beim erstellen die ID als CustomProperty "Chart" angelegt. Beim Refresh wird die ID mit der vorhandenen ID verglichen und bei einem Treffer "bearbeitet".

Da das direkte Verändern der Datenquelle eines Diagramms nicht funktioniert, wird es beim Aktualisieren gelöscht und anschließend wieder neu erstellt.

LG, BigBen


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
21.06.2017 11:37:15 Vroni
NotSolved
Blau eingebettetes Diagramm verschieben
21.06.2017 15:43:00 BigBen
NotSolved
28.06.2017 13:49:05 Gast47812
NotSolved