Ich benutze LibreOffice Calc um 16 RGB-Farben zu speichern (rot in B-Spalte, grün in C und blau in D), dann möchte ich den Hintergrund von 16 Zellen mit der jeweiligen Farbe malen. Jede Farbe ist in einer Reihe.BASIS verschachtelte Schleifen: Zeilen filtern
Im Moment konnte ich das teilweise erreichen: Nicht nur 16 Zellen sind lackiert, sondern 48 (16x3)! Es scheint, dass ich die verschachtelten Schleifen "gruppieren" muss. Dies ist mein Code/Makro:
function bgcolor()
Dim Doc, Sheet, CellPaint As Object
Dim CellR, CellG, CellB As String
Doc = ThisComponent
Sheet = Doc.Sheets.getByIndex(0)
For i = 1 to 16 step 1
For j = 1 to 3 step 1
CellR = Sheet.getCellByPosition(j+0,i).getValue()
CellG = Sheet.getCellByPosition(j+1,i).getValue()
CellB = Sheet.getCellByPosition(j+2,i).getValue()
CellPaint = Sheet.getCellByPosition(j+6,i)
CellPaint.CellBackColor = RGB(CellR,CellG,CellB)
next j
next i
bgcolor=CellPaint.CellBackColor
end function
Dies ist das Ergebnis:
Die erste Spalte der Farben (H) ist, was ich brauche, genau. Andere zwei Spalten erscheinen dort, also: Wie repariere ich meine verschachtelten Schleifen? Wahrscheinlich muss ich sie mit einer einfachen if
Anweisung filtern, aber ich bin mir nicht sicher.
EDIT - Zur Referenz: Die Lösung sollte auf this one ähnlich sein, jedoch habe ich gelesen, es auf Openoffice nicht möglich ist (ich nehme weder auf Libreoffice).
Danke!
, die perfekt funktioniert! Ich dachte nicht, dass es so einfach sein könnte. Danke vielmals! – Gerard