Thema Datum  Von Nutzer Rating
Antwort
11.05.2017 15:32:55 martin
NotSolved
Blau Diagramm mit VBA steuern
14.05.2017 20:48:04 BigBen
NotSolved
14.05.2017 20:55:59 BigBen
NotSolved

Ansicht des Beitrags:
Von:
BigBen
Datum:
14.05.2017 20:48:04
Views:
586
Rating: Antwort:
  Ja
Thema:
Diagramm mit VBA steuern

Hallo,

vielleicht hilft dieser Code:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Set rng = Target.Worksheet.Columns(2)
    If Not Intersect(Target, rng) Is Nothing Then
        Call Diagramm_aktualisieren
    End If
End Sub

Private Sub Diagramm_aktualisieren()
    Dim objChart As Chart
    Dim serItem As Series, serCheck As Series
    Dim rng As Range
    Dim bExists As Boolean
    Set objChart = Me.ChartObjects(1).Chart
        
    ' Alle Datenreihen entfernen
    For Each serItem In objChart.SeriesCollection
        serItem.Delete
    Next
    
    For Each rng In Intersect(Me.UsedRange, Me.Columns(2)).Cells
        If ExistsWorksheet(rng.Value) Then
            bExists = False
            ' Check, ob Datenreihe bereits existiert
            For Each serCheck In objChart.SeriesCollection
                If serCheck.Name = rng.Value Then
                    bExists = True
                    Exit For
                End If
            Next
            If Not bExists Then
                ' Falls DAtenreihe nicht vorhanden ist, wird diese neu angelegt
                Set serItem = objChart.SeriesCollection.NewSeries
                Debug.Print rng.Value
                serItem.Name = "=""" & rng.Value & """"
                serItem.XValues = "='" & rng.Value & "'!$B$2:$C$6"
                serItem.Values = "='" & rng.Value & "'!$C$2:$C$6"
            End If
        End If
    Next
End Sub

Private Function ExistsWorksheet(SearchName As String) As Boolean
    Dim wsh As Worksheet
    For Each wsh In ActiveWorkbook.Worksheets
        If wsh.Name = SearchName Then
            ExistsWorksheet = True
            Exit For
        End If
    Next
End Function

Dieser Code durchsucht alle Zellen in der Spalte B. Falls ein Wert in einer Zelle mit einem Worksheet-Namen übereinstimmt, wird die Datenreihe hinzugefügt.

Vor dem Hinzufügen werden alle bereits existierende Datenreihen gelöscht.

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
11.05.2017 15:32:55 martin
NotSolved
Blau Diagramm mit VBA steuern
14.05.2017 20:48:04 BigBen
NotSolved
14.05.2017 20:55:59 BigBen
NotSolved