[Megoldva] aktív sor kiemelése

Táblázatkezelő

[Megoldva] aktív sor kiemelése

HozzászólásSzerző: marcopolo » 2019. április 3., szerda 14:54

Egy nagy adathalmazzal dolgozom. Rendkívül megkönnyítené az áttekintést, ha egy makró megoldaná, hogy az éppen aktív cella egész sorát kijelölje/kiemelje, hogy szépen elkülönüljön (olyan színnel, amilyet én szeretnék, esetleg más betűstílussal, bármilyen formázási lehetőséggel).
Találtam a fórumon böngészve egy fájlt, amiben megvalósul a számomra szükséges megoldás. Annyi módosításra lenne szükségem, hogy más legyen a kiemelés színe (nem tudom, mit kellene átírnom, hogy ez megváltozzon?!) Illetve alapból aktív állapotban szeretném használni, nem gombnyomáshoz kötve a ki/bekapcsolását.

Előre is köszönöm a segítséget.
Csatolmányok
crosshighlight_combined.ods
(21.12 KiB) 22 alkalommal.
OpenOffice 6.0.7.3 az Ubuntu 18.04.2-n
marcopolo
 
Hozzászólások: 15
Csatlakozott: 2019. április 3., szerda 12:58

Re: aktív sor kiemelése

HozzászólásSzerző: Zizi64 » 2019. április 3., szerda 17:17

Annyi módosításra lenne szükségem, hogy más legyen a kiemelés színe (nem tudom, mit kellene átírnom, hogy ez megváltozzon?!)

Ja, értem már.
A makro nem egyedi színt, hanem a "kijelölés" általános tulajdonságait használja. A kijelölés az fix színű, nem állítható a LibreOffice beállításai között. (Például a megjegyzések színe állítható az Eszközök - Beállítások -Személyre szabás menüpontban.)
Talán átveszi az operációs rendszer beállításait - ez esetben egy másik színséma lehet, hogy megváltoztatja -, de az is lehet, hogy hardkódolva van a LO-ban.

Ha nem a 'kijelölés"-t használod a makródban, hanem eltárolod a sor tulajdonságait, beállítasz egy saját stílust, majd utána visszaállítod az eredeti tulajdonságait a sor összes cellája esetében, akkor - jó bonyolultan - működhet a dolog.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.3.3, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3482
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: aktív sor kiemelése

HozzászólásSzerző: marcopolo » 2019. április 3., szerda 17:35

https://www.youtube.com/watch?v=bGjqDGF7xaM - Ez az Excel verziója annak, amire egészen pontosan szükségem lenne.

Amit én felcsatoltam, az is jó lenne ideiglenesen, ha automatikusan működne, miután feltöltöm az én kis Calc táblázatomba a macrot. (mert, ha most betöltöm azokat a kódokat, amik ebben megtalálhatóak, nem csinálja a dolgát)
OpenOffice 6.0.7.3 az Ubuntu 18.04.2-n
marcopolo
 
Hozzászólások: 15
Csatlakozott: 2019. április 3., szerda 12:58

Re: aktív sor kiemelése

HozzászólásSzerző: Zizi64 » 2019. április 3., szerda 20:12

https://www.youtube.com/watch?v=bGjqDGF7xaM - Ez az Excel verziója annak, amire egészen pontosan szükségem lenne.

Egyáltalán nincs már Excel-em több, mint 10 éve: nem tudom kipróbálni, hogy a videóban látott dolog milyen makrót eredményez, és az hogyan működik.


Amit én felcsatoltam, az is jó lenne ideiglenesen, ha automatikusan működne, miután feltöltöm az én kis Calc táblázatomba a macrot. (mert, ha most betöltöm azokat a kódokat, amik ebben megtalálhatóak, nem csinálja a dolgát)

Ezért kellene a te mintafájlod: akkor láthatnám, hogy abban miért nem működik. Mert a csatolt .ods fájl nekem is működik a LO 6.1.5 verziómmal. Minta nélkül nem tudok mit mondani.
Kérdezni is csak annyit: az On/Off gombok funkcióját ki akarod váltani a te verziódban, vagy megfelel, hogy a figyelőt (a Listener-t) gombbal/menüponttal kapcsolod be/ki? (Nem jó ötlet folyamatosan bekapcsolva hagyni.)
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.3.3, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3482
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: aktív sor kiemelése

HozzászólásSzerző: Zizi64 » 2019. április 4., csütörtök 8:11

Ha makrókkal akarsz dolgozni, akkor az API ismerete elengedhetetlen. Az API-t megismerni viszont nem könnyű. Leírásokból (bár vannak) kifejezetten nehéz.
Ezért javaslom, hogy telepíts egyet a létező Object Inspection Tools-ok közül. Én az XrayTool nevűt használom, de létezik az MRI nevű is. A programozási objektumok létező tulajdonságait, metódusait képes megjeleníteni programfutás közben. Így megtudhatod, például, hogy a g_Cross objektum létezik-e az adott pillanatban (hozzá van-e rendelve a névhez maga az objektum), és hogy annak létezik-e .CellBackColor metódusa.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.3.3, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3482
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: aktív sor kiemelése

HozzászólásSzerző: marcopolo » 2019. április 4., csütörtök 9:03

Csatoltam a fájlomat, ami nem működik.

Igazság szerint, nem szeretném ebbe túlzottan beleásni magamat. Nekem a mindennapi dolgaimhoz lenne rá szükségem, de ezen felül, nem használom ilyen mélységekben a táblázatkezelőt.

Minden esetre köszönöm, a gyors és kedves válaszokat!
Csatolmányok
test.ods
(7.29 KiB) 21 alkalommal.
OpenOffice 6.0.7.3 az Ubuntu 18.04.2-n
marcopolo
 
Hozzászólások: 15
Csatlakozott: 2019. április 3., szerda 12:58

Re: aktív sor kiemelése

HozzászólásSzerző: Zizi64 » 2019. április 4., csütörtök 9:32

A test.ods fájlodban egyáltalán nincs semmi makró. Lehet, hogy csak elfelejtetted bemásolni, de feltételezhetem azt is, hogy máshonnan akarod futtatni azokat.

A makrók nem képesek futni egy másik munkafüzetből.

A programcsomag SajátMakrók Standard könyvtárának egy Moduljából vagy a mindenkori aktutális dokumentum Moduljából lehet csak futtatni.

Igazság szerint, nem szeretném ebbe túlzottan beleásni magamat.

Akkor felejtsd el a makrózást. "Beleásódás" nélkül nem fog menni. Használd azokat a funkciókat, amik rendelkezésre állnak.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.3.3, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3482
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: aktív sor kiemelése

HozzászólásSzerző: marcopolo » 2019. április 4., csütörtök 9:41

A saját makrók könyvtáramból futtatom, azért nem volt a fájlban. Javítottam a dolgot.
Csatolmányok
test.ods
(8.81 KiB) 22 alkalommal.
OpenOffice 6.0.7.3 az Ubuntu 18.04.2-n
marcopolo
 
Hozzászólások: 15
Csatlakozott: 2019. április 3., szerda 12:58

Re: aktív sor kiemelése

HozzászólásSzerző: Zizi64 » 2019. április 4., csütörtök 10:08

OK, most benne van a makró. Kiegészítettem a
Kód: Egész kijelölése   KinyitásÖsszecsukás
Option VBAsupport 1

kapcsolóval. Ez segít futtatni az idegen VBA kódot.

- De mi fogja elindítani a makrót?
Tettem fel egy gombot, amihez hozzárendeltem a makró indítását.

De így se fut, mert:
- Ki, mi (milyen rutin) fogja átadni a rutin nevében jelzett "Target" paramétert a te szubrutinodnak? A LibreOffice az oEv, oEvent névvel is hivatkozható esemény objektumot képes automatikusan átvenni - ha egy bekapcsolt Listener (figyelő) hatására elindul egy makró. De ez az oEv nem egy cellatartomány objektum, hanem esemény-objektum. Abból "kihámozható" ugyan a cellatartomány, ahol az esemény történt, de ahhoz is az API függvények kellenek.
- Mi a "test" objektum? Ki, mi adja meg annak az értékét, tartalmát? Nem hivatkozhatsz valamire úgy, hogy előtte ne mondanád meg, hogy MI AZ...

Ezeken kívül:
- Hol van a munkafüzetedben az "ActiveRow" nevű, névvel rendelkező cellatartomány, amire a makró hivatkozik? A Navigátor nem mutat ilyet, nem létezik. A LibreOffice-ban nem adhatsz meg névvel rendelkező tartományt csakis a sor számával. Teljes referenciát kell használnod:
Kód: Egész kijelölése   KinyitásÖsszecsukás
A1:AMJ1



Egyébként is azt hittem, hogy a "crosshighlight_combined.ods" fájlban levő API+StarBasic rutinokról beszélsz, amikor azt írtad, hogy a feltöltött makró nem fut neked. Mondom még egyszer: A VBA (Excel makró) rutinok kompatibilissé tételével sem, és a LO Starbasic+API megoldásával sem fogsz eredményre jutni programozói tudás nélkül. Mindkettő hosszú tanulási folyamatot igényel, de előbbivel alig van esélye, hogy az hatékonyan működni is fog.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.3.3, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3482
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: aktív sor kiemelése

HozzászólásSzerző: Zizi64 » 2019. április 4., csütörtök 11:07

Annyit módosítottam a kódodon, hogy a kívánt cellába belekattintva, és utána a gombot megnyomva az ActiveRow hivatkozása a kijelölt cella sorára frissül. Csak 200 oszlopra csináltam meg, és a kijelölés természetesen eltűnik, ha máshová kattintasz, akár a soron belül is.

Lehet tovább "kínlódni" az inkompatibilis VBA kóddal, hogy ez ne csak gombnyomásra, hanem automatikusan történjen meg azonnal, amikor más sorba kattintasz, de célszerűbb a LO API függvényeivel és a beépített Listener-ekkel megvalósítani, ahogy az a "crosshighlight_combined.ods" fájlban is történik. Ott a gombokkal csak a megírt funkciót kapcsolod be/ki, a kijelölés automatikusan megtörténik minden cellakattintáskor - ha a funkció be van kapcsolva.

Highlight_LO_Calc_row_with_VBA_code.ods
(11.51 KiB) 27 alkalommal.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.3.3, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3482
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: aktív sor kiemelése

HozzászólásSzerző: marcopolo » 2019. április 4., csütörtök 11:09

Köszönöm szépen a segítséget.

Megnézem a VBA verziót, illetve megcsinálom akkor a saját fájlomban a gombot, és hozzárendelem a macrot!
OpenOffice 6.0.7.3 az Ubuntu 18.04.2-n
marcopolo
 
Hozzászólások: 15
Csatlakozott: 2019. április 3., szerda 12:58

Re: aktív sor kiemelése

HozzászólásSzerző: Zizi64 » 2019. április 4., csütörtök 11:43

Aztán az angol fórumon van "színezgethető" kijelöléssel is megoldás. Az nem a beépített "kijelölés" funkciót és annak fix színét, hanem a Feltételes Formázás funkciót használja. Ott, az alkalmazandó cellastílusban te adhatod meg a kívánt színt. Ez a megoldás néhány oszloppal és 100 sorral is baromi lassú, még több cellával használhatatlanul lassú, és "összeomlós" lesz.
https://forum.openoffice.org/en/forum/v ... =9&t=43531

Töltsd le onnan az utolsó csatolmányt (a focusRowColHighlight.ods fájlt), és próbáld ki.
Sok sikert!
Kovács Tibor (Win7x64Prof/W10x64prof: LO6.1.6;
winPenPack/PortableApps: LO3.3.1-6.3.3, AOO4.1.6
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címe elejének szerkesztésével - tedd hozzá: [Megoldva].
Avatar
Zizi64
Globális moderátorok
 
Hozzászólások: 3482
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: aktív sor kiemelése

HozzászólásSzerző: marcopolo » 2019. április 4., csütörtök 12:42

Köszönöm szépen. Miután kipróbáltam mind a két verziót, végül az Ön által javasolt ki-be kapcsolható megoldást választottam. A másik tényleg borzasztóan lassú. Így végül sikerült megoldani a dolgot.
OpenOffice 6.0.7.3 az Ubuntu 18.04.2-n
marcopolo
 
Hozzászólások: 15
Csatlakozott: 2019. április 3., szerda 12:58


Vissza: Calc

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég

cron