Komentáře Pohyb v buňkách pomocí kurzoru

user avatar Jiří Daněk
Odpovědět
Pohyb v buňkách pomocí kurzoru
4. 03. 2018, 20:09:59
Zkouším přejít z MS Office na LO a dělám začátečnické pokusy. Kdysi dávno jsem takto přecházel z Calc 602 na MS Office. Nevím, jestli je to tím, že jsem taky už podstatně starší a nebo makra ve zmíněných programech mi byly srozumitelnější, nebo kombinací obojího, ale LO mi dává zabrat.
Potřebuji si předělat nějaká moje makra do LO a dost narážím. Naštěstí jsem důchodce a tak čas, který tím trávím beru jako trening. Být v aktivním věku, asi bych už utekl.
Ve svých makrech poměrně často používám interní proměnné:
- konec dat (řádek sloupec)
- ActiveCellRow případně ActiveCellColumn atd.Interních proměnných je v excelu mrak.
Domnívám se, že v LO nic takového není, alespoň jsem nikde nenašel o tom žádnou zmínku. To je ale otázka zvyku.
Hodnoty konce dat (sloupec, řádek) pak používám jako proměnné v cyklech.
V uvedené kapitole je sice příkaz:
"kurzor.gotoEndOfUsedArea(True)",
který sice příkazem
"kurzor.CellBackColor = RGB(0,0,255)"
obarví správnou buňku, ale když se zeptám na jeho "souřadnice",sekvencí příkazů

oCell = ThisComponent.CurrentController.getSelection()
With oCell.RangeAddress
SH = .Sheet REM číslo záložky
SC = .StartColumn REM číslo sloupce konce dat
SR = .StartRow REM číslo řádku konce dat
End With

dostanu do proměnných souřadnice "AKTIVNÍ BUŇKY" (tu jsem dosud chápal jako polohu KURZORU) a ne polohu kurzoru dle LO. Na konec dat v listu, bych ale musel manuálně přejít příkazem CTRL END. Pokoušel jsem se to řešit taky "záznamem makra", který jsem dost používal v excelu, ale výsledek v LO Calc byl pro mě zoufale nepřehledný.
Už jsem pochopil, že "Pohyb v buňkách pomocí kurzoru" pracuje s proměnnými v buňkách a poloha aktivní buňky. Název mě tedy trochu mate. To ale není důležité.

S čím bych tedy potřeboval pomoci (pokud to jde):
- Jak mohu dostat aktivní buňku na konec dat?
- Jak mohu dostat aktivní buňku obecně kamkoli?
- jak mohu zjistit polohu aktivní buňky a její uložení do proměnných. (řádek slupec)?
- jak mohu zjistit polohu poslední editované hodnoty v buňce, tedy polohu kurzoru LO (kurzor.goto...)?

Pro kontrolu posílám odpovídající excelové příkazy pro práci s aktivní buňkou.
- Přesunutí aktivní buňky na poslední použitou buňku tabulky.
„ActiveCell.SpecialCells(xlLastCell).Select“
- Převzetí čísla sloupce aktivní buňky (Kurzoru) do proměnné.
„(Poslední)Sloupec = ActiveCell.Column“
- Převzetí čísla řádku aktivní buňky do proměnné.
"(Poslední)Radek = ActiveCell.Row“
„Poslední“ platí jen pokud bylo provedeno přesunutí na poslední buňku datové oblasti.

Moc moc děkuji.
J. Daněk
user avatar neutr
Odpovědět
Pohyb v buňkách pomocí kurzoru
5. 03. 2018, 09:30:07
Pane Daněk nejlepší bude, když otevřete na fóru - téma Calc. Stačí když se přihlásíte jako nový uživatel a napíšete "nový příspěvek" právě pro Calc.
Uveďte název například "Převod maker MSO na StarBasic" nebo něco podobného.

Je pravdou že já bývám velmi nepříjemný pokud někdo prosazuje VB, nebo VBA na úkor StarBasicu, ale opačný přechod považuji za správný a žádoucí.

Asi bych Vás měl ujistit že jsem také starobní důchodce ale nemám čas na nic jiného nežli na programování ve StarBasic, nebo práci pro zdejší fórum. Takže místo "koníčka" se u mne vyprofilovala pořádná kobyla:-)
 
 
woo jaw demo hz