Office: (Office 2010) VBA - Diagramm - Farbe von Markierung auslesen

Helfe beim Thema VBA - Diagramm - Farbe von Markierung auslesen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Excel-Gemeinde, ich möchte im VBA-Programm die Farbe der Markierungspunkte einer Linie im Liniendiagramm auslesen, und zwar unabhängig davon, ob... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von reinhardh, 6. August 2017.

  1. VBA - Diagramm - Farbe von Markierung auslesen


    Hallo Excel-Gemeinde,
    ich möchte im VBA-Programm die Farbe der Markierungspunkte einer Linie im Liniendiagramm auslesen, und zwar unabhängig davon, ob die Farbe automatisch gewählt wird oder explizit eingestellt wird. Ich habe folgenden Code versucht:
    With ActiveChart.SeriesCollection(1)
    f = .MarkerForegroundColor
    g = .Format.Fill.ForeColor
    End With
    aber ohne Erfolg. Es kommt immer nur das Ergebnis f=-1 bzw. g=0, egal welche Farbe gewählt ist.
    Ich hoffe, jemand von euch weiß Rat. Vielen Dank schon mal im voraus.

    reinhardh
     
    reinhardh, 6. August 2017
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    vielleicht als Ansatz: wenn .MarkerForegroundColor -1 ist, dann weißt du, dass der Wert auf automatisch gestellt ist und könntest mit .Border.Color die automatische Farbnummer erhalten:

    Code:
            If .MarkerForegroundColor = -1 Then
                MsgBox .Border.Color
            Else
                MsgBox .MarkerForegroundColor
            End If
    
    

    Bis später,
    Karin
     
    Beverly, 7. August 2017
    #2
  3. Hallo Karin,
    das habe ich gleich ausprobiert. Aber Border.Color gibt mir die Farbe der Linie. Ich möchte aber die Farbe der Markierungsfüllung haben. Die krieg ich einfach nicht raus.

    Gruß Reinhard
     
    reinhardh, 7. August 2017
    #3
  4. Beverly
    Beverly Erfahrener User

    VBA - Diagramm - Farbe von Markierung auslesen

    Hi Reinhard,

    irgendwie hatte ich wohl gestern vergessen, meinen Beitrag abzuschicken...

    Das Problem, dass die automatische Farbzuweisung nicht ausgelesen wird, betrifft immer nur die 1. Datenreihe, bei allen weiteren funktioniert das problemlos. Hier mal mein verallgemeinerter Code, wie man bei einem Liniendiagramm die Farbzuweisung aller Datenreihen auslesen könnte. Das Ergebnis wird in die Spalten E:G eingetragen:

    Code:
    Sub DiaLinieFarben()
        Dim serReihe As Series
        Dim lngFarbe As Long
        Dim lngReihe As Long
        Range("E1") = "Marker Rahmen"
        Range("F1") = "Marker Füllung"
        Range("G1") = "Verbindungslinie"
        With ActiveSheet.ChartObjects(1).Chart
            Range(Cells(2, 5), Cells(.SeriesCollection.Count + 1, 7)).Clear
            For lngReihe = 1 To .SeriesCollection.Count
                Set serReihe = .SeriesCollection(lngReihe)
                With serReihe
                    ' Linie und Marker automatisch (nur für 1. Datenreihe erforderlich)
                    If .MarkerForegroundColor = -1 And .Border.ColorIndex = -4105 And .MarkerBackgroundColor = -1 Then
                        ' verwendet wird Border.Color
                        Range(Cells(lngReihe + 1, 5), Cells(lngReihe + 1, 7)).Interior.Color = .Border.Color
                        Range(Cells(lngReihe + 1, 5), Cells(lngReihe + 1, 7)) = .Border.Color
                    Else
                        ' Farbe Verbindungslinie auslesen
                        lngFarbe = .Border.ColorIndex
                        ' Farbe Verbindungslinie auf automatisch setzen
                        .Border.ColorIndex = xlAutomatic
                        ' Marker Rahmenfarbe
                        If .MarkerForegroundColor = -1 Then
                            Cells(lngReihe + 1, 5).Interior.Color = .Border.Color
                            Cells(lngReihe + 1, 5) = .Border.Color
                        Else
                            Cells(lngReihe + 1, 5).Interior.Color = .MarkerForegroundColor
                            Cells(lngReihe + 1, 5) = .MarkerForegroundColor
                        End If
                        ' Marker Füllung
                        If .MarkerBackgroundColor = -1 Then
                            Cells(lngReihe + 1, 6).Interior.Color = .Border.Color
                            Cells(lngReihe + 1, 6) = .Border.Color
                        Else
                            Cells(lngReihe + 1, 6).Interior.Color = .MarkerBackgroundColor
                            Cells(lngReihe + 1, 6) = .MarkerBackgroundColor
                        End If
                        ' farbe Verbindungslinie zurücksetzen
                        .Border.ColorIndex = lngFarbe
                        ' Linie war nicht auf Farbe "Keine" gesetzt
                        If .Border.Color > 0 Then
                            Cells(lngReihe + 1, 7).Interior.Color = .Format.Line.ForeColor.RGB
                            Cells(lngReihe + 1, 7) = .Format.Line.ForeColor.RGB
                        End If
                    End If
                End With
            Next lngReihe
        End With
    End Sub
    
    
    Bis später,
    Karin
     
    Beverly, 9. August 2017
    #4
  5. Hallo Karin,
    ich habe mal eine ganze Weile mit diesem Farbsystem herumgespielt, deshalb die etwas späte Antwort. Erst mal danke für das Programm, erst funktioniert tatsächlich. So wie ich es verstanden habe, setzt du im Fall „xlautomatic“ die Linienfarbe ebenfalls auf xlautomatic und liest dann die automatische Linienfarbe über .border.color aus. Damit hat man den RGB-Code der Farbe, die das System automatisch wählt. Das scheint tatsächlich die einzige Möglichkeit zu sein, an diese Farbe ranzukommen. Danach wird wieder die ursprüngliche Linienfarbe eingestellt. Das ist dann ganz schön umständlich. Das System muß doch irgendwo die Farbpalette gespeichert haben, die bei automatischer Farbwahl zum Einsatz kommt. Die Frage ist, wie kommt man an diese Palette ran? Ich habe auch schon mit dem COLORFORMAT-Objekt gespielt, aber das hat nichts gebracht. Hast du noch eine Idee?
    Gruß Reinhard
     
    reinhardh, 13. August 2017
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi Reinhard,


    Nein - die von mir bereits gepostete ist die einzige mir bekannte, die ein positives Resultat bringt.

    Bis später,
    Karin
     
    Beverly, 13. August 2017
    #6
  7. Dann werde ich mal deine Lösung einbauen. Vielen Danke auch für deine Hilfe.
    Gruß Reinhard
     
    reinhardh, 14. August 2017
    #7
Thema:

VBA - Diagramm - Farbe von Markierung auslesen

Die Seite wird geladen...
  1. VBA - Diagramm - Farbe von Markierung auslesen - Similar Threads - VBA Diagramm Farbe

  2. VBA Diagramm-Daten aktualisieren

    in Microsoft Excel Hilfe
    VBA Diagramm-Daten aktualisieren: Hallo, ich habe folgendes Problem. Ich habe eine Tabelle, die sich jeden Tag um eine Zeile automatisch erweitern soll mit dem aktuellen Datum und aktuellen Werten. Das funktioniert auch soweit....
  3. Diagrammfarbe gemäß Zellfarbe

    in Microsoft Excel Hilfe
    Diagrammfarbe gemäß Zellfarbe: Hallo zusammen, im Rahmen meiner Abschlussarbeit habe ich eine Frage an euch. Es geht um ein Tool in dem Kraftwerksdaten durch die Auswahl verschiedener Parameter verglichen werden können. In...
  4. EXCEL Horizontale Achse schneidet - Wert mit Zellbezug mittels VBA

    in Microsoft Excel Hilfe
    EXCEL Horizontale Achse schneidet - Wert mit Zellbezug mittels VBA: Hallo zusammen, als VBA-Neuling stehe ich vor einer für mich großen Herausforderung:confused:. Für ein Dashboard muss ich verschiedene Diagramme mit spezifischen Achsenwert (Horizontale Achse...
  5. VBA Diagramm aktualisieren

    in Microsoft Excel Hilfe
    VBA Diagramm aktualisieren: Hallo, ich versuche gerade per VBA mehrere Diagramme zu aktualisieren. Ich habe mal eine Beispieldatei angehängt um das näher zu erklären ohne vieler Worte. Die Spalten mit den Daten sind...
  6. Ausgewähltes Diagramm per VBA umbenennen

    in Microsoft Excel Hilfe
    Ausgewähltes Diagramm per VBA umbenennen: Hallo werte MoFs, ich würde gern ein Diagramm ganz normal auswählen und per VBA einen neuen Namen geben. Folgenden Code habe ich bisher, verstehe aber nicht so recht, wie ich nun das aktuell...
  7. bedingte Zellfarbe auf Diagramm übertragen

    in Microsoft PowerPoint Hilfe
    bedingte Zellfarbe auf Diagramm übertragen: Hallo zusammen, ich habe ein Diagramm erstellt, in dem die Zellfarbe über eine bedingte Formatierung per Drop Down ausgewählt wird. Ich möchte das die bedingte Zellfarbe dann auch im Diagramm...
  8. Diagramm über Werteliste per Makro erstellen

    in Microsoft Excel Hilfe
    Diagramm über Werteliste per Makro erstellen: Ich versuche per Makro ein Diagramm zu erstellen. Ich möchte die Werte der Kurve direkt als Liste in das Diagramm schreiben und nicht über einen Bezug auf einen Tabellenbereich. Ich habe für...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden