Oldal: 1 / 1

[Megoldva] Cellaszínezés

Elküldve: 2012. augusztus 21., kedd 20:38
Szerző: mzpx
Sziasztok !

Picit talán túlzás ennek a kérdésnek új téma, de nem találtam hasonlót.
A "probléma": nx100 soros táblázatomon megyek végig és időnként pl. státuszokat jelölve átszínezek egy-egy cellahátteret vagy betűket.
Azonban minden alkalommal ki kell választanom a színt felesleges +1 kattintással.
Pedig látom, hogy megjegyezte az utolsó használt színt mert a gombon látszik. Egy másik "ismert és gyakran használt" szoftvernél ha nem nyitom le a választéklistát, akkor az utolsó használt színt alkalmazza. Nem lehet valahogy hasonlóra beállítani a LO-t is ? Esetleg megérhetne egy kisebb fejlesztést módosítani a gomb működését vagy mást ennyire nem zavar talán ?
A Ctrl+Shift+Y sajnos nem jó, mert bármi mást csináltam közben, akkor nem a szín változik.

Köszi !

Re: Cellaszínezés

Elküldve: 2012. augusztus 21., kedd 22:32
Szerző: Zizi64
1.: Tudom javasolni a Formátumecsetet, ha a már formázott cella látható közelségben van az újabb formázandó cellához.

2.: De még jobb megoldás a feltételes formázás. Ha meg lehet matematikailag fogalmazni, hogy mik azok a feltételek, ami alapján formázod a cellát, akkor az egész tartományra egyszerre alkalmazhatod a feltételcsoportot, és majd a program kiválasztja az előre létrehozott cellastílusokból, hogy az adott cellára melyiket is kell alkalmazni.

(A Writerben egyébként úgy működik a színezés, ahogy te szeretnéd, de egyrészt ez téged nem villanyoz fel, másrészt ott sem szerencsés "kézi" - közvetlen - formázásokat alkalmazni, hanem ott is a stílusok alkalmazása a célravezetőbb módszer.)


3.: Ha nagyon nagy és sok hasonló dokumentumok kell (és mindenképpen kézi formázással) feldolgozni, akkor pedig a makrók használatát javaslom:

Kód: Egész kijelölése

REM  *****  BASIC  *****


sub Hatterszin_piros
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "BackgroundColor"
args1(0).Value = 16711680

dispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args1())

end sub


sub Betuszin_Kek
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Color"
args1(0).Value = 255

dispatcher.executeDispatch(document, ".uno:Color", "", 0, args1())


end sub

sub Hatterszin_kek
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "BackgroundColor"
args1(0).Value = 255

dispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args1())

end sub


sub Betuszin_piros
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Color"
args1(0).Value = 16711680

dispatcher.executeDispatch(document, ".uno:Color", "", 0, args1())


end sub
Ezt egyszerűen a makrórögzítő funkcióval rögzítettem, még programozni sem kell tudni hozzá. A mellékelt fájlban nyomógombokhoz vannak rendelve, de fel lehet venni az eszköztárra is. Ehhez először a kódot be kell másolni a PROGRAM STANDARD KÖNYVTÁRÁBA, egy modulba, hogy bármikor elérhetők legyenek, ne csak akkor, amikor ezt a dokumentumot megnyitod...
Háttérszín makró.ods
(10.58 KiB) Letöltve 282 alkalommal.


Fejlesztési javaslatokat célszerűbb a fejlesztőknek eljuttatni. Mi itt a fórumon túlnyomó többségben egyszerű felhasználók vagyunk.

http://libreoffice.hu/hibabejelentes/
Itt tudsz új funkcióra is javaslatot tenni... (openscpoe.org -> Kezelőpult -> Hibabejelentés -> Feladat létrehozása/Libreoffice/Új funkció.

A közvetlen link (remélem, működik):
http://bug.openscope.org/secure/CreateI ... fault.jspa

Re: Cellaszínezés

Elküldve: 2012. augusztus 22., szerda 8:47
Szerző: Zizi64
1.: Tudom javasolni a Formátumecsetet, ha a már formázott cella látható közelségben van az újabb formázandó cellához.
Még az az ötlet jutott eszembe, hogy ha a megformázott "minta cellákat" mondjuk az első sorban hozod létre, akkor az "ablak rögzítése" funkció használatával mindig láthatóvá, mindig "elérhetővé" tudod tenni a formátum ecset "mártogatásához"...

Re: Cellaszínezés

Elküldve: 2012. augusztus 22., szerda 22:42
Szerző: mzpx
Köszi, működik ! A feltételes formázás és a makrós verzió is jó de talán a makrós jobb ahhoz amihez nekem kell. A formátumecset nem jó, mert az 3katt.

Érdekes volt, hogy a feltételes formázásnál amelyikre alkalmazódótt a formázás nem lehetett utána a formázás törléséig "kézzel" változtatni a színeken, ha viszont töröltem előjött a nem látszó "kézi" formázás. Ráadásul nem is látszik a celláról, hogy éppen feltételesen formázott, ha valaki nem tudja sokáig gondolkodhat miért nem működik a színezés...

Azonban a makróssal volt jó sok kínlódás de sokat tanultam. Szerintem ráléptem minden aknára ami itt van :lol:

Leírom, hátha másnak már nem kell végigszenvednie újra:
  • Win7-en a Calc értelmes hibaüzenet nélkül lefagyott az eszközök / makrók futtatása-kor és amikor a help-ben a keresés lapon kerestem valamit. Némi kísérletezés után (na meg mert Win XP-n futtatva JRE hibára utalt, furcsa, hogy W7-en meg nem) kiderült, hogy csak akkor nem fagy le, ha Java 6u26 is van a gépen és az van beállítva használandó JRE-nek. Onnantól ok. Hogy a 7u5 miért nem jó neki ?
  • Eszközök / makrók rögzítése menüpont csak a kísérleti (instabil) funkciók engedélyezése után volt hajlandó megjelenni.
Mégegyszer köszi !

Re: [Megoldva] Cellaszínezés

Elküldve: 2012. augusztus 22., szerda 23:18
Szerző: Zizi64
Eszközök / makrók rögzítése menüpont csak a kísérleti (instabil) funkciók engedélyezése után volt hajlandó megjelenni.
Igen, ez így van egy ideje a a programban megoldva, itt a fórumban is többször volt ez már kérdés...

Érdekes volt, hogy a feltételes formázásnál amelyikre alkalmazódótt a formázás nem lehetett utána a formázás törléséig "kézzel" változtatni a színeken, ha viszont töröltem előjött a nem látszó "kézi" formázás.
Egyszerű a megoldás: vagy az egyiket, vagy a másikat használd... Az alapértelmezett állapot is lehet egy egyéni cella stílussal megadva. Ehhez képest fog a feltételek teljesülése esetén megváltozni a cella kinézete.

Ráadásul nem is látszik a celláról, hogy éppen feltételesen formázott, ha valaki nem tudja sokáig gondolkodhat miért nem működik a színezés...
A létező és ismert funkciókra azért illik gondolnia egy átlagos felhasználónak...
(ez már az Excel(-0,5)-es verziójában is megvolt...)
:-)