<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="rss.css" type="text/css"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>OpenOffice.cz - Komentáře ke článkům</title>
<link>http://www.openoffice.cz/diskuse/diskuze-ke-clankum</link>
<description>Oficiální portál pro uživatele OpenOffice.org</description>
<copyright>Copyright © 2024 CCB spol. s r.o.</copyright>
<managingEditor>webmaster@ccb.cz (OpenOffice.cz)</managingEditor>
<webMaster>webmaster@ccb.cz (OpenOffice.cz)</webMaster>
<generator>XOOPS 2.2.4 / RSSFit 1.52</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<language>cs</language>
<lastBuildDate>Tue, 9 Jun 2026 20:06:28 +0200</lastBuildDate>
<item>
<title>Re:Re:Název listu do buňky</title>
<description><![CDATA[Akorát mi nějak nedošlo že nejjednodušší způsob jak získat z RAND() nulu je 0*Rand(), proto předtím ten TRUNC a RANDBETWEEN, uviděl jsem to až na bugzille :-). Takže takhle: 
=REGEX(CELL("Address";$List1.$A$1) & 0*RAND();"\$'?(.+?)'?\.\$A\$1.*";"$1")
=REGEX(CELL("Address";$List1.$A$1) & RAND();"\$?'?(.*?)'?\.?\$A\$1.*";"$1")
=IF(CELL("Address";$List1.$A$1) & 0*RAND()="$A$10";MID(CELL("filename");FIND("#$";CELL("filename"))+2;LEN(CELL("filename")));REGEX(CELL("Address";$List1.$A$1);"\$'?(.+?)'?\.\$A\$1.*";"$1"))]]></description>
<pubDate>Sat, 14 Nov 2020 22:31:38 +0100</pubDate>
<link>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post10120</link>
<guid>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post10120</guid>
</item>
<item>
<title>Re:Název listu do buňky</title>
<description><![CDATA[Tak ještě čistě bez vlastní funkce :-). Jsou však dvě varianty. První je jednodušší, ale název listu vloží jen do jiných listů, do aktuálního listu (čili do listu "sebe samého") vkládá jen $A$10 případně nic. Autopřepočítávání je děláno funkcí RAND.
Zde to aktuálního listu vloží $A$10.
=REGEX(CELL("Address";$List1.$A$1) & TRUNC(RAND()-0,5);"\$'?(.+?)'?\.\$A\$1.*";"$1")
Zde to do aktuálního nevloží nic.
=REGEX(CELL("Address";$List1.$A$1) & RAND();"\$?'?(.*?)'?\.?\$A\$1.*";"$1")
Druhá varianta je univerzální a název listu vkládá do jakékoliv buňky, i v aktuálním listě. To je těžší a je tam podmínka kdy se testuje co vlastně CELL("Address";...) vrátila. Když vrátí $A$10 tak je buňka v aktuálním listu a název listu se vezme z CELL("filename") jako to je v článku; jinak vrátí adresu z reguláru jako v první variantě. Odkaz na buňku (List1.$A$1) se však do vzorce musí vkládat na dvou místech. Automatické přepočítávání vzorce zajišťuje funkce RANDBETWEEN(0;0), která takto vždy vrátí nulu. 
=IF(CELL("Address";$List1.$A$1) & RANDBETWEEN(0;0)="$A$10";MID(CELL("filename");FIND("#$";CELL("filename"))+2;LEN(CELL("filename")));REGEX(CELL("Address";$List1.$A$1);"\$'?(.+?)'?\.\$A\$1.*";"$1"))]]></description>
<pubDate>Sat, 14 Nov 2020 21:03:15 +0100</pubDate>
<link>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post10119</link>
<guid>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post10119</guid>
</item>
<item>
<title>Re:Re:Název listu do buňky</title>
<description><![CDATA[Dodatečně díky za vaše příspěvky, díky též za vaši činnost na fóru i zde. Chtěl byste se trochu víc zapojit do LibreOffice? Dejte mi vědět na petr.valach(a)libreoffice.org. Děkuji!]]></description>
<pubDate>Thu, 12 Nov 2020 17:04:10 +0100</pubDate>
<link>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post10115</link>
<guid>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post10115</guid>
</item>
<item>
<title>Re:Název listu do buňky</title>
<description><![CDATA[Jen drobná úprava, vzpomněl jsem si že jsou i funkce LEFT a RIGHT a nikoliv jen MID a INSTR :-). 
Function NAZEVLISTU(s$,a) as string 'vrátí část řetězce od prvního $ do části .$A$1
s=mid(s,inStr(1,s,"$",0)+1) 'název od prvního $
s=mid(s,1,inStr(1,s,".$A$1",0)-1) 'název až do .$A$1
if left(s,1)="'" then s=mid(s,2) 'odstranit případnou první uvozovku
if right(s,1)="'" then s=mid(s,1,len(s)-1) 'odstranit případnou poslední uvozovku
NAZEVLISTU=s
End Function]]></description>
<pubDate>Fri, 13 Mar 2020 13:35:55 +0100</pubDate>
<link>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post9966</link>
<guid>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post9966</guid>
</item>
<item>
<title>Název listu do buňky</title>
<description><![CDATA[S využitím vlastní fce to jde myslím jednodušeji, neboť v makru se lépe kouskuje řetězec, resp. ve vzorcích nejspíš musím vždy zadávat vícekrát název kouskovaného řetězce abych dostal nějakou jeho požadovanou část - např. jako je tomu uvedeno v příkladě, kde je třeba 2x CELL("Filename"). Kdežto když vytvořím vlastní vzorec tak tam onen parametr mohu zadat jen jednou a potřebné části z něj získám v makru. 
Je však stále potřeba přidat i druhý parametr aby se vzorec aktualizoval např. při přejmenování listu -> a funkce RAND() na tu aktualizaci slouží skutečně asi nejlépe. 
Takže výsledek může být třeba takto: 
Function NAZEVLISTU(s$,a) as string 'vrátí část řetězce od prvního $ do části .$A$1
s=mid(s,inStr(1,s,"$",0)+1) 'název od prvního $
s=mid(s,1,inStr(1,s,".$A$1",0)-1) 'název až do .$A$1
if inStr(1,s,"'",0)=1 then s=mid(s,2) 'odstranit případnou první uvozovku
if inStr(1,s,"'",0)=len(s) then s=mid(s,1,len(s)-1) 'odstranit případnou poslední uvozovku
NAZEVLISTU=s
End Function
A do buňky se zadává: =NAZEVLISTU(CELL("Address";$List2.$A$1);RAND())
kde List2 je list jehož název chci dostat. 
Jelikož jde jen o vypsání názvu listu a nezáleží tedy na kterou buňku je odkazováno, použil jsem část adresy .$A$1 pro stanovené kouskování řetězce v makru, čili tuto část ($A$1) tedy neměnit. 
Kdyby přeci jen mělo (třeba někdy jindy) záležet na odkazované buňce, tak jiný způsob rozdělení řetězce by mohl být třeba podle poslední tečky v dané adrese, neboť listy lze pojmenovat s tečkou a výsledný řetězec ze kterého bych chtěl dostat název listu by mohl vypadat třeba takto: $'List.222'.$A$1 -> a pak by bylo potřeba zjišťovat třeba právě pozici poslední tečky (tedy až té před $A$1 a nikoliv té předešlé v List.222) a vrátit řetězec třeba opět od prvního $ až do té poslední tečky. Což není nic těžkého a dá se na to použít třeba kouskování řetězce i přes regulární výrazy, nicméně pro ukázku jsem uvedl snad to nejjednodušší :-) - ostatně vždy je snažší dělat něco pro jednoznačné zadání než se trápit pro rádoby univerzální řešení na další a další kombinace typu: "a co kdyby to bylo ještě takhle onakhle" ... "až nakonec úplně mákle".]]></description>
<pubDate>Fri, 13 Mar 2020 13:04:09 +0100</pubDate>
<link>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post9965</link>
<guid>https://www.openoffice.cz/diskuse/diskuze-ke-clankum/nazev-listu-do-bunky#post9965</guid>
</item>
</channel>
</rss>