🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Diagramm Legende färben

Alles zur Programmierung im LibreOffice.
Antworten
hpr78
Beiträge: 4
Registriert: Di 20. Jul 2021, 18:46

Diagramm Legende färben

Beitrag von hpr78 » Di 12. Nov 2024, 16:04

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.
Dateianhänge
Bildschirmfoto vom 2024-11-13 15-36-11.png
Bildschirmfoto vom 2024-11-13 15-36-11.png (16.03 KiB) 1078 mal betrachtet
Zuletzt geändert von hpr78 am Mi 13. Nov 2024, 15:38, insgesamt 1-mal geändert.

Mondblatt24
* LO-Experte *
Beiträge: 3336
Registriert: Fr 3. Mär 2017, 17:12

Re: Diagramm Legende färben

Beitrag von Mondblatt24 » Di 12. Nov 2024, 16:54

Hallo,
und Format → Legende (das Diagramm befindet sich im Bearbeitungsmodus) reicht dir nicht?
Win 11 (x64) ▪ LO 25.2.5.1 (x64) ▪ AOO Portable 4.1.15
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.

hpr78
Beiträge: 4
Registriert: Di 20. Jul 2021, 18:46

Re: Diagramm Legende färben

Beitrag von hpr78 » Di 12. Nov 2024, 20:14

Und wie ändert das die Farben der Legenden-Einträge?
Die behalten bei mir ihre Standardfarbe und übernehmen nicht die Farbe des Diagramms.

mikele
* LO-Experte *
Beiträge: 1927
Registriert: Mo 1. Aug 2011, 20:51

Re: Diagramm Legende färben

Beitrag von mikele » Do 14. Nov 2024, 19:22

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 ...
Gruß,
mikele

hpr78
Beiträge: 4
Registriert: Di 20. Jul 2021, 18:46

Re: Diagramm Legende färben

Beitrag von hpr78 » Sa 16. Nov 2024, 10:32

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.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten