Szervusztok!
Színkoordinátákat számoltam ki Libreoffice Calc-al, és eredményül kaptam 3 számot kaptam: R, G és B értékeket. Azt szeretném elérni, hogy a megfelelő cella ez alapján a 3 koordináta alapján színeződjön ki. Lehetséges ez? Vagyis adott négy oszlop, az első három a 3 színkoordináta, a negyedik a kapott szín.
Köszönettel:
ttm
Cellaháttér RGB színkoordináták alapján
- Zizi64
- Globális moderátorok
- Hozzászólások: 4034
- Csatlakozott: 2008. november 12., szerda 21:22
- Tartózkodási hely: Budapest
Re: Cellaháttér RGB színkoordináták alapján
Ha csak a színt szeretnéd látni, akkor talán számodra is hasznos lehet az RGB nevű kiterjesztés:
http://extensions.services.openoffice.o ... roject/RGB
Ha ezt függvénnyel szertnéd megvalósítani, az a véleményem, hogy ez nem fog egyszerűen menni. A saját Basic függvények a cellának (és csak annak a cellának!) - ahonnan a hívás történt - az értékét tudják csak megváltoztatni, egyéb tulajdonságát nem.
"Külső" szubrutinnal ez lehetséges. Be kell olvasnod a három cella értékét (a helyüket persze tudnod kell), és az RGB
Például az A10 cella színének megváltoztatásához itt egy nagyon egyszerű kód:
A gond a paraméterátadással van, hiszen ahogy mondtam, függvényként hiába hívnád meg, semmiképpen nem működne.
Beolvashatod persze adott cellákból az RGB értéket (most a B oszlopra írt példát látsz):
...de a szubrutin meghívását csak menüponthoz, eszköztár elemhez, vagy mondjuk nyomógombhoz rendelve, kézi beavatkozással tudod elérni. (Csak függvényt tudsz cellából közvetlenül meghívni, szubrutint nem - és ezzel bezárult a kör.)
(Talán, ha egy "listenert" létrehozol a három cella változásának figyelésére Basicben, akkor a szubrutinodat "függvényszerűvé" tudod változtatni, hiszen az mindannyiszor lefut, amikor a három cella közül valamelyiknek az értéke megváltozik, és ilyenkor mindig meghívja a szubrutinodat, ami bemeszeli a kívánt cellát.)
((Hozzá lehet rendelni a szubrutint a "Dokumentum állapota megváltozott" eseményhez is, de ez elég veszélyes dolog, rosszul sülhet el - könnyen végtelen ciklusba kerülhet az ember...))
http://extensions.services.openoffice.o ... roject/RGB
Ha ezt függvénnyel szertnéd megvalósítani, az a véleményem, hogy ez nem fog egyszerűen menni. A saját Basic függvények a cellának (és csak annak a cellának!) - ahonnan a hívás történt - az értékét tudják csak megváltoztatni, egyéb tulajdonságát nem.
"Külső" szubrutinnal ez lehetséges. Be kell olvasnod a három cella értékét (a helyüket persze tudnod kell), és az RGB
Például az A10 cella színének megváltoztatásához itt egy nagyon egyszerű kód:
Kód: Egész kijelölése
Sub ChangeCellBackgroundColor
oSheet=thiscomponent.getcurrentcontroller.activesheet
ocell = osheet.getCellRangeByName("A10")
ocell.CellBackColor = RGB (20, 100, 200)
end sub
Beolvashatod persze adott cellákból az RGB értéket (most a B oszlopra írt példát látsz):
Kód: Egész kijelölése
Sub ChangeCellBackgroundColor
oSheet=thiscomponent.getcurrentcontroller.activesheet
oR_cell = osheet.getCellRangeByName("B1")
R_value = oR_Cell.value
oG_cell = osheet.getCellRangeByName("B2")
G_value = oG_Cell.value
oB_cell = osheet.getCellRangeByName("B3")
B_value = oB_Cell.value
ocell = osheet.getCellRangeByName("B10")
ocell.CellBackColor = RGB (R_value, G_value, B_value)
end sub
(Talán, ha egy "listenert" létrehozol a három cella változásának figyelésére Basicben, akkor a szubrutinodat "függvényszerűvé" tudod változtatni, hiszen az mindannyiszor lefut, amikor a három cella közül valamelyiknek az értéke megváltozik, és ilyenkor mindig meghívja a szubrutinodat, ami bemeszeli a kívánt cellát.)
((Hozzá lehet rendelni a szubrutint a "Dokumentum állapota megváltozott" eseményhez is, de ez elég veszélyes dolog, rosszul sülhet el - könnyen végtelen ciklusba kerülhet az ember...))
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].