Sziasztok!
Segítséget szeretnék kérni.
Adott egy táblázat. Különféle feltételes formázások vannak beállítva.
Egy cellában szeretném lekérdezni, hogy egy adott cella aktuálisan melyik stílust kapta meg a feltételes formázás által.
Pl.: ha A1 cella értéke 3 - feltételes formázás: stílus neve: Piros (piros színt kap)
ha A1 cella értéke 5 - feltételes formázás: stílus neve: Kék (kék színt kap)
A2 cella = A1 cella stílusának neve (vagy piros vagy kék)
Akár függvény, akár makró is segítségemre lehet, köszönöm!
[Megoldva] Feltételes formázás - lekérdezése
[Megoldva] Feltételes formázás - lekérdezése
LibreOffice 6.4.7.2
- Zizi64
- Globális moderátorok
- Hozzászólások: 4071
- Csatlakozott: 2008. november 12., szerda 21:22
- Tartózkodási hely: Budapest
Re: Feltételes formázás - lekérdezése
Nincs mód rá.
Csak az elsődlegesen alkalmazott Cella-Stílus (nevének és objektumának) lekérdezésére, és a kézzel (közvetlenül) alkalmazott tulajdonságok lekérdezésére van mód. Nem tudok arról sem, hogy a legújabb 7.4.0 verzióban ilyesmit megvalósítottak volna.
És SOHA ne használj formázási tulajdonságot valamiféle ADAT-ként. Csinálj helyette segédcellákat, amiben az adott (a vizsgálandó) cella állapotát szöveges, vagy számérték jelzi - akár ugyanazon (de cellaképlettel megvalósított) feltételrendszer mellett!
Csak az elsődlegesen alkalmazott Cella-Stílus (nevének és objektumának) lekérdezésére, és a kézzel (közvetlenül) alkalmazott tulajdonságok lekérdezésére van mód. Nem tudok arról sem, hogy a legújabb 7.4.0 verzióban ilyesmit megvalósítottak volna.
És SOHA ne használj formázási tulajdonságot valamiféle ADAT-ként. Csinálj helyette segédcellákat, amiben az adott (a vizsgálandó) cella állapotát szöveges, vagy számérték jelzi - akár ugyanazon (de cellaképlettel megvalósított) feltételrendszer mellett!
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].
- Zizi64
- Globális moderátorok
- Hozzászólások: 4071
- Csatlakozott: 2008. november 12., szerda 21:22
- Tartózkodási hely: Budapest
Re: Feltételes formázás - lekérdezése
...elvileg a feltételes formázás képleteit le lehet kérdezni, de azt valahogy újra fel is kéne dolgoznod a makróddal a cella aktuális tartalmát alapul véve, mert azt sehol nem jelzi a program (az API-n keresztül), hogy mi lett a "látható, vizuális eredménye" a feltételrendszernek..
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].
- Zizi64
- Globális moderátorok
- Hozzászólások: 4071
- Csatlakozott: 2008. november 12., szerda 21:22
- Tartózkodási hely: Budapest
Re: Feltételes formázás - lekérdezése
Ötlet:
Használhatod a STYLE() függvényt a feltételes formázáshoz a beépített funkció helyett.
Ez esetben a mintafájlban megvalósítottak szerint több lehetőséged is van az alkalmazandó/alkalmazott stílus nevének megszerzésére.
Utólag makróval lehet kiolvasni (II. megoldás):
A MyDummy paraméter azért kell, hogy a cellaérték változásakor a makrófüggvény is frissüljön. ("Simán" átadva csupán a cellaértéket az nem viszi magával a értéket tartalmazó cella adatait (pozícióját): ezért kell a munkalap, sor, oszlop adatokat is átadni.
De tulajdonképpen már az alkalmazása előtt tudható a feltételes stílus neve (I. megoldás)
De továbbra is fenntartom, hogy NAGY HIBA egy táblázatkezelőben a formázási tulajdonságokat megpróbálni adatokként kezelni.
Használhatod a STYLE() függvényt a feltételes formázáshoz a beépített funkció helyett.
Ez esetben a mintafájlban megvalósítottak szerint több lehetőséged is van az alkalmazandó/alkalmazott stílus nevének megszerzésére.
Utólag makróval lehet kiolvasni (II. megoldás):
Kód: Egész kijelölése
Function MyGetCellStyleName1(MySheet as long, MyCol as long, MyRow as long , MyDummy as Variant) as string
Dim oDoc as object
Dim oSheets as object
Dim oSheet as object
Dim oCell as object
Dim sStyleName as string
oDoc = Thiscomponent
oSheets = oDoc.Sheets
oSheet = oSheets.getbyindex(MySheet-1)
oCell = oSheet.getCellByPosition(MyCol-1, MyRow-1)
sStyleName = oCell.CellStyle
MyGetCellStyleName1 = sStyleName
end function
De tulajdonképpen már az alkalmazása előtt tudható a feltételes stílus neve (I. megoldás)
De továbbra is fenntartom, hogy NAGY HIBA egy táblázatkezelőben a formázási tulajdonságokat megpróbálni adatokként kezelni.
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].
Re: Feltételes formázás - lekérdezése
Ez a megoldás egyszerűen zseniális, nagyon szépen köszönöm!
LibreOffice 6.4.7.2
- Zizi64
- Globális moderátorok
- Hozzászólások: 4071
- Csatlakozott: 2008. november 12., szerda 21:22
- Tartózkodási hely: Budapest
Re: [Megoldva] Feltételes formázás - lekérdezése
Nyilván bonyolultabb esetben a Stílus alkalmazása is IF() függvények sorával történhet meg... (pl, ha nem csak egész számokat akarsz formázni, hanem különböző értéktartományokon belüli/kívüli állapotokat).
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].