Tak to hledání nebylo tak hrozné. Potřebný sešit posílám. Pravděpodobně bude nutné změnit kritérium, podle kterého se kapitoly od sebe budou oddělovat. V řešeném případě to byl specifický text pro začátek každé kapitoly. Předpokládám, že i ve vašem zdrojovém textu se najde příznak, který půjde použít pro rozdělení textu na části. Kdyby vznikl s úpravou mého sešitu problém, stačí popsat, podle čeho se má zdrojový soubor dělit.
Kdysi jsem řešil velmi podobný problém pro tazatele, který potřeboval nějaký svůj rozsáhlý e-book rozdělit do texťáků po kapitolách pro svůj maličký tablet. Zkusím pohledat na svém disku, jestli jsem ještě o tu aplikaci nepřišel při postupném stěhování ze starých notebooků na novější železo. Když to najdu, dám to k dispozici.
Nestudoval jsem, jak je kalendář napsaný. Pokud reaguje i na lokalizaci Excelu v názvech měsíců, je to další důvod tu aplikaci pochválit.
Aplikace je úhledná a funkční. Líbí se mi, jak je to udělané, navíc bez VBA. Kalendáři se slovenskými svátky by ale jistě prospělo, kdyby se Leden jmenoval Január atd.
Vůbec se nedivím Slovákům, že přecházejí stále důsledněji na vlastní zápis vzorců, složený z originálních názvů funkcí a slovenských (tedy i českých) separátorů. S tím, jak se bude na Slovensku šířit Excel s tímto způsobem zápisu vzorců, budou čeští uživatelé stále méně rozumět slovenským textům, v nichž budou slovenské vzorce uváděny. Týká se to zejména těch českých uživatelů, kteří slovenský Excel nemají a kteří nechtějí (nebo nemohou) pracovat s VBA.
Napadlo mne, že bych se mohl pokusit pro české čtenáře slovenských textů vytvořit převodník slovenských vzorců na jejich českou podobu. Myšlenka je poměrně prostá: slovenské znění vzorce chci v českém Excelu převést pomocí vlastní procedury na anglický ekvivalent, a ten následně automaticky změnit na jeho českou podobu.
K tomu bych si ale potřeboval ověřit, jak slovenský Excel převádí originální anglickou verzi vzorce na slovenskou a naopak. Zatím mi to přijde tak, že standardní převod Formula na slovenské FormulaLocal změní "," na ";" a následně "." na ",", přičemž zbytek vzorce zůstane zachovaný. To ovšem nemusí být všechno. Proto bych potřeboval získat info, co všechno ještě převod na slovenský FormulaLocal opravdu provádí.
Jistě by mi pomohlo, kdybych vlastnil slovenský Excel (ten bohužel nemám). Když mi ale někdo ze slovenských kolegů poradí, kde si mohu postup pro vznik slovenské FormulaLocal ověřit, pomůže mi to, abych vytvořil dostatečně věrohodný převodník.
Tazatel, který potřebuje poradit se vnořeným KDYŽ (což charakterizuje míru jeho znalostí o Excelu), asi bude mít problém s tím, co CHOOSE a MATCH znamená. To samé platí o práci s časem, ve které mají často bordel i daleko pokročilejší uživatelé Excelu. Předpoklad o potřebné inteligenci nenahradí potřebné znalosti.
Je určitě chvályhodné připomenout minimálně používanou funkci Zvolit (Choose), stejně jako zápis pro array ve složených závorkách. Téměř s jistotou to však tazateli s danou úrovní znalostí jenom zamotá hlavu.
AL:
=E3-CHOOSE(MATCH(E3;{12;10,5;4,5};-1);1;0,5;0)
Přeloženo do češtiny ZVOLIT a POZVYHLEDAT. Celé by to ovšem mohlo fungovat, jen když E3 bude vyjádřeno přímo v hodinách (což je u času v Excelu dost neobvyklé).
Nevím, jak jste pochopil, co jsem napsal. Mínil jsem to, co je v příloze. Jestli to není to, co potřebujete, pak pro změnu nerozumím já vám.
Zkuste podmíněné formátování, kde v podmínce výběru využijete funkci POZVYHLEDAT, případně SVYHLEDAT
Google pro mne nestojí na temné straně. Představuje pro mne něco jako návštěvu restaurace, pro kterou se musím oholit a převléknout, proti kuchtění z vlastních surovin na vlastní plotně. Přiznám se, že to druhé dělám radši.
Dokonce řeknu víc. Kdybych měl srovnat online nápovědu Excelu s dotazem na Googlu, pak dám zpravidla přednost strýčku Googlovi.
Vůbec jste nepochopil smysl mého příspěvku: nejde o to, co doplněk dělá, ale že použití algoritmu v doplňku výrazně degraduje jeho rychlost. A implicitní otázka zněla, jestli pro ten efekt má někdo rozumné vysvětlení.
Jinak opravdu nemám potřebu šťourat se v cizích zamčených listech. Jako půvabné mi připadlo to, že tu petlici na králírárně, za kterou hesla pro listy pokládám, lze překonat vlastními prostředky Excelu.
Ten vzoreček je v tomto případě možné napsat i bez příkladu od tazatele (i když příklad by měl být povinností). Za předpokladu, že v E3 je čas v jednotkách dny a zavedu si hodinu jako počítací jednotku, může vzorec vypadat asi takto:
=KDYŽ(E3*24<=4,5;E3;KDYŽ(E3*24<=10;E3-1/48;KDYŽ(E3*24<=12;E3-1/24;"????")))
Záměrně jsem do vzorce vložil ???? pro čas přes 12 hodin, který tazatel nedefinuje. A ještě jedna věc: buňka se vzorcem musí být naformátovaná pro zobrazení času (např. h:mm).
Na netu jsem před časem našel půvabný algoritmus ve VBA, který funguje jako univerzální šperhák na hesla jak pro strukturu sešitu, tak pro obsah listů (nikoliv ale pro hesla na projektu VBA). Funkci jsem ověřil a mohu potvrdit její účinnost i rychlost.
Rozhodl jsem se proceduru upravit do podoby doplňku, abych ji měl víc po ruce. Při této příležitosti jsem se pokusil o její další zrychlení vhodnými zásahy do původního algoritmu. Účinek těchto zásahů jsem chtěl vyhodnotil pomocí zabudovaného měření doby trvání.
Výsledek mne nemile zaskočil. Výsledek mých zásahů do algoritmu se projevil jen zcela bezvýznamným zrychlením. Zato použití shodně zaheslovaného sešitu pro srovnávací testy mi poskytlo možnost porovnat rychlost přímého využití algoritmu z paralelně otevřeného sešitu s jeho využitím v podobě doplňku.
Efekt, který se dostavil, jsem nečekal a také jsem se o možnosti podobného účinku nikde nedočetl. Zaheslovaný sešit má tři listy, každý zamčený jiným heslem, a k tomu je tento sešit zamčený jak pro strukturu, tak pro okna dalším nezávislým heslem. Sešit s prolamovacím algoritmem mám ve dvou provedeních: (1) jako xlsm, (2) jako xlam (doplněk). Obsahově jsou obě provedení totožná.
Rychlost práce aktivovaného doplňku (xlsm+xlam): 32,023 sec
Rychlost práce souběžně otevřených sešitů (xlsm+xlsm): 7,676 sec
Jinými slovy totožný algoritmus, spuštěný z doplňku, mi běží čtyři a půlkrát pomaleji, než stejný algoritmus z paralelně otevřeného sešitu. Tomu efektu nerozumím a neumím si ani představit jeho příčinu.
Tři dny jsem do tohoto vlákna nevstupoval, protože jsem se obával obsahu reakcí. Naštěstí zůstaly ve věcné rovině. V jednom se s nimi shoduji: z online nápovědy se stala téměř nepoužitelná směsice odkazů na často pochybné zdroje.
V tom směru jsem byl donucený online režim nápovědy vypnout a trvale přejít do offline režimu. To naštěstí jde a k výsledkům nápovědy z offline režimu se vztahují moje poznámky.
V offline podobě zůstává nápověda v rovině, která mi vyhovuje. Ze stejného zdroje čerpá své texty i ObjectBrowser (bohužel ne zcela důsledně). Chyby v těchto popisech mi ale samozřejmě vadí. Na jednu z takových chyb jsem v tomto vlákně upozornil. Že tím vyvolám diskusi o užitečnosti strýčka Google, jsem opravdu netušil.
Domnívám se, že by mělo stačit, když při vyhodnocení nesouvislé oblasti použijete kolekci Areas:
Dim Oblast As Range, Area as Range, Bunka as Range
For Each Area in Oblast.Areas
For Each Bunka in Area.Cells
naplnění formátů
next Bunka
Next Area
Dokonce si dodatečně myslím, že jednotlivé Areas není nutné porcovat na buňky.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.