openoffice, prace s listy

Ludvik Urban lu na argo.troja.mff.cuni.cz
Čtvrtek Červen 7 11:40:17 CEST 2018


On Wed, 6 Jun 2018, Vladimír Macek wrote:

> Kolega má .ODS sešit s asi 30 listy o stejné struktuře a každý list se
> nějak jmenuje. Chtěl by do nového listu SOUČET agregaci takovu, že na
> každém řádku byl název listu a hodnota z buňky E66 daného listu.
>
> Řekl jsem mu, že na tento úkol spreadsheet úplně není, protože listy
> používá jako další dimenzi tabulky. Ale třeba někdo z vás během minuty
> nastřelí makro, které by kolegovi pomohlo a on by to nemusel překlofávat... :-)

Vubec jsem s tim nikdy nic nedelal,
ale asi se da neco najit na tech internetech. :-)

Tools->Macros->Organise Macros->LIbreOfice Baxic
Tady si vytvorim makro:
----------------------------------------------
Function SHEETLIST()
SHEETLIST = ThisComponent.Sheets.getElementNames()
End Function
----------------------------------------------

Pak najedu na vybranou bunku a napisu:
"=sheetlist()" a soucasne stisknu ctrl+shift+enter

A ve bunce a v dalsich napravo se mi vlozi nazvy vsech listu.

Kdyz napisu "transpose(sheetlist())" a case zmacknu ctrl+shift+enter,
vytvori se mi seznam vsech listu svisle v tom sloupci.

No a pak asi staci se odkazat na bunku obsahujici nazev potrebneho 
listu:
=INDIRECT("'"&<bunka, kde je nazev listu>&"'.<bunka na tom listu>")

Cili priklad:
mam-li v bunce B9 nazev listu a z toho listu potrebuju bunku A7:

=INDIRECT("'"&B9&"'.A7")

bez zaruky...

-- 
  --------------------------------------------
| Ludvik Urban     lu na argo.troja.mff.cuni.cz |
  --------------------------------------------


Další informace o konferenci Linux