Seite 1 von 1

Diagramm Legende färben

Verfasst: Di 12. Nov 2024, 16:04
von hpr78
In einem Diagram unter Datenbereich > Dateinreihen > Spalte X, lege ich die Füllfarbe aus einem Tabellenbereich fest.
In den Feldern stehen die Farbwerte, z. B.

Code: Alles auswählen

=HEXINDEZ("ff420e")
Das Diagramm wird eingefärbt. Yippie!

Nur wird die Farbe nicht in die Legende übernommen.

Geht das über eine Einstellung oder nur über ein Makro?

Ich habe bisher nur ein rudimentäres Makro, dass nur die Farben ausließt, aber nicht setzt:

Code: Alles auswählen

Sub UpdateLegendColorsChart()
  Dim oSheet As Object
  Dim oDrawPage As Object
  Dim oDiagram As Object
  Dim oDiagramData As Object
  Dim oLegend As Object
  Dim oDataSeries As Object
  Dim oLegendEntry As Object
  Dim i As Integer, j As Integer
  Dim nColor As Long
  Dim oData As Object
  Dim rowCount As Integer
  Dim oProvider As Object

  oSheet = ThisComponent.CurrentController.ActiveSheet
  oDrawPage = oSheet.DrawPage
  
  For i = 0 To oDrawPage.getCount() - 1
    oDiagram = oDrawPage.getByIndex(i).EmbeddedObject.Component
    oDiagramData = oDiagram.getDiagram()
    oLegend = oDiagram.getLegend()
    If Not IsNull(oLegend) Then
      oData = oDiagram.getData()
      rowCount = UBound(oData.data, 1) + 1

      For j = 0 To rowCount - 1
        oDataSeries = oData.data(j)
        nColor = oDataSeries(1)

        ' XXX - ab hier verließen sie mich
        '               
        ' oProvider = oDiagram.getDataProvider() 
        ' oLegendEntry = oProvider.getSeries(0)
        ' oLegendEntry.TextColor = RGB(255, 0, 0)
        ' oLegendEntry = oLegend.data(j)
        ' oLegendEntry.setPropertyValue("FillColor", nColor)
        ' oSeries.setFillColor(RGB(255, 0, 0))
      Next j
      
      oLegend.refresh()
    End If
          
    oDiagramData.refresh()
  Next i
End Sub
Bis zum XXX erhalte ich alle Farbdaten, nur bekomme ich nicht raus, wie ich die Farben der Legende setze, dazu reicht mein Makro-Basic-Wissen nicht aus und auch ChatGPT kommt da an seine Grenzen.

Ich hoffe es hat jemand genug Ahnung von Makros und kann mir helfen diese Kopfnuss zu lösen :?

Anbei ein Beispiel, die große grüne Fläche 52,66%, ist eine eigene Farbe, Standard wäre dunkel rot.
Das dunkel rot in der Legende soll auch grün sein.

Re: Diagramm Legende färben

Verfasst: Di 12. Nov 2024, 16:54
von Mondblatt24
Hallo,
und Format → Legende (das Diagramm befindet sich im Bearbeitungsmodus) reicht dir nicht?

Re: Diagramm Legende färben

Verfasst: Di 12. Nov 2024, 20:14
von hpr78
Und wie ändert das die Farben der Legenden-Einträge?
Die behalten bei mir ihre Standardfarbe und übernehmen nicht die Farbe des Diagramms.

Re: Diagramm Legende färben

Verfasst: Do 14. Nov 2024, 19:22
von mikele
Hallo,
das scheint ein uralter Bug zu sein
https://bugs.documentfoundation.org/sho ... i?id=80303
Ich hab euach noch keinen Weg gefunden, die Legende (sprich die farbigen Punkte) direkt zu bearbeiten ...

Re: Diagramm Legende färben

Verfasst: Sa 16. Nov 2024, 10:32
von hpr78
Ja, das hatte ich schon gesehen, darum wollte ich es über ein Makro lösen, komme aber an einer Stelle nicht weiter.
Alle Makro-Lösungen, die ich fand, beziehen sich auf uralte Versionen, die heute nicht mehr funktionieren.