Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 37

Dík za tipy. Sešit je napsán tak, aby do něj nikdo vlastní objekty typu grafů nebo obrazců nevkládal. Zajímavý tip jsou podmíněné formáty, které mne nenapadly. Pochybuji však, že by se někdo z uživatelů toho sešitu do podobného dobrodružství pouštěl. Možné to ale je!
Hledání pomocí xml je zřejmě správná cesta, ale má své velké "ale". Pokud mám pomocí xml prohledávat konkrétní list, pak těch listů má příslušný sešit v této chvíli celkem 146 a s výjimkou jeho tří VeryHidden listů jsou v podezření všechny ostatní. Tak to je tedy náruč práce!
Zatím jsem zvolil pohodlnější cestu. Kromě vstupní žádosti o řešení otázky propojení nemá to nedostupné propojení žádný vliv na chod sešitu. Nastavil jsem proto sešit do režimu, kdy se sešit ani neptá, ani se nepokouší žádná propojení aktualizovat. Uživatelsky je tak sešit v pohodě.
Samozřejmě jsem jen strčil hlavu do písku, aby problém nebylo vidět, když nikomu neškodí. Věřím, že časem objevím, kde je problém zakletý.

V sešitě, který v kopiích putuje mezi řadou uživatelů, se po řadě měsíců intenzivního využívání náhle objevila žádost na aktivaci propojení. Zdrojový sešit, o který se jedná, opravdu k agendě nepatří a dostal se tam zjevně omylem. Protože se ten zdroj nachází v kolekci LinkSources(xlExcelLinks), hledal jsem ho jako součást odkazu ve vzorcích sešitu. K mému překvapení jsem ho neobjevil. Prohlédl jsem neúspěšně i názvy (Names) a seznam volatelných maker. Kde ještě by se mohl vyskytovat název souboru, který je evidován v kolekci LinkSources(xlExcelLinks)?

Petře, mně tentokrát šlo o ty LinkSources. S tím, že propojení mohou ležet i jinde, jsem se dost obíral a s řadou takových míst si poradit umím. Ale na ty LinkSources jsem si nebyl stavu vzpomenout. Dík za pomoc!

Vzpomínám si, že v objektovém modelu Excelu existují nejméně dvě kolekce s informacemi o propojeních sešitu. Už den se marně pokouším vzpomenout si, jak se jmenují. Pomůže mi někdo?

Zkuste najít inspiraci v přiloženém sešitě!

Nevím, jak pro koho, ale pro mne je toto vlákno velmi výživné. Rozbor chování Names byl pro mne objevný dík příspěvkům od elninoslov a eLCHa.
Obrázek, který si tady stáhlo víc lidí, zpracovává jiný maticový vzorec, než který lze nalézt v sešitě, jejž přiložil elninoslov. Jde o odpověď na dotaz v jiném fóru z 31.1.2018. Ten vzorec v lokálním řádkovém zobrazení zní:
{=--DOSADIT(DOSADIT(ZPRAVA(ZLEVA(A3;DÉLKA(A3)-POZVYHLEDAT(PRAVDA;ČÁST(A3;DÉLKA(A3)+1-ŘÁDEK(A$1:INDEX(A:A;DÉLKA(A3)));1)=" ";0));POZVYHLEDAT(PRAVDA;ČÁST(ZLEVA(A3;DÉLKA(A3)-POZVYHLEDAT(PRAVDA;ČÁST(A3;DÉLKA(A3)+1-ŘÁDEK(A$1:INDEX(A:A;DÉLKA(A3)));1)=" ";0));DÉLKA(ZLEVA(A3;DÉLKA(A3)-POZVYHLEDAT(PRAVDA;ČÁST(A3;DÉLKA(A3)+1-ŘÁDEK(A$1:INDEX(A:A;DÉLKA(A3)));1)=" ";0)))+1-ŘÁDEK(A$1:INDEX(A:A;DÉLKA(ZLEVA(A3;DÉLKA(A3)-POZVYHLEDAT(PRAVDA;ČÁST(A3;DÉLKA(A3)+1-ŘÁDEK(A$1:INDEX(A:A;DÉLKA(A3)));1)=" ";0)))));1)>"9";0)-1);",";"");".";",")}

Posouzení čitelnosti a rozluštitelnosti vzorce nechávám na vás.

Musím přiznat, že pojmenovaný vzorec s "maticovým charakterem" se mi po zavolání opravdu chová jako maticový. Současně platí moje dlouholetá zkušenost, že pojmenované vzorce, které takový charakter nemají, se po zavolání chovají jako běžné nematicové vzorce.
Důvod, proč jsem si maticového chování pojmenovaných vzorců nevšiml, je velmi prostý. Maticové vzorce používám jen zcela výjimečně a vůbec už mne nenapadlo takový vzorec vložit do Name. Teď jsem hledal, jak to docílit a žádný speciální obrat jsem neobjevil. Nenapadlo mne, že není co objevovat, protože se to udělá samo. Nevzpomínám si, že bych o tom v nějakém manuálu našel zmínku.

Vyzkoušel jsem. Vytvořit přímo pojmenovaný maticový vzorec, uložený jako obsah Name, se mi ale nepovedlo. Co ovšem šlo, bylo uložení obsahu vzorce (bez maticového označení) do názvu (např. Honza). Teprve při vložení vzorce do buňky (=Honza) musím tento vzorec potvrdit Ctrl+Shift+Enter, aby se to začalo chovat maticově.
Podobnou možnost využívám i já, aniž bych použil Names. Český obsah budoucího maticového vzorce vytvořím někde ve VBA a následně ho přenesu ve VBA do buňky jako FormulaLocal. Musím ale skončit tím, že ručně pomocí Ctrl+Shift+Enter z toho vzorce udělám vzorec maticový.

Právě ten ruční konec dělá z automatu poloautomat. Tím takové řešení (proti vložení do FormulaArray) je nedotažené. Zatím ale pro maticové vzorce, delší než 255 znaků, neznám lepší možnost.

@ eLCHa
Netušil jsem, že lze vytvořit pojmenovaný maticový vzorec. Z Vašeho příkladu to neplyne. Ale vyzkouším!

Zajímavé řešení přes Names. Jak ale ta buňka pozná, že jde o maticový vzorec?
Napadá mne jiná cesta přes Names. Udělal jsem si rozbor vzorce od elninoslov, který ukázal, že vzorec obsahuje čtyři shodné dlouhé sekvence. Uložením té sekvence do Names a její volání do konečného vzorce by ho zkrátilo nejmíň na polovinu. Svůj automatický rozbor obsahu původního vzorce přikládám v podobě obrázku.

Nikoho tady snad neohromím informací, že maticový vzorec se ve VBA vkládá do vlastnosti Range.FormulaArray v notaci R1C1. Vybaven touto znalostí jsem tak učinil. Při vkládání vzorce pro věčný kalendář jsem si přitom tvrdě natloukl nos. Teprve když jsem si pořádně přečetl Help, zjistil jsem, že maximální délka řetězce pro FormulaArray je 255 znaků. A ten vzorec jich ale měl 261 !!! Důvod pro toto omezení nechápu, protože maticový vzorec může být prakticky i podstatně delší.
Vůbec nejdelší maticový vzorec, který jsem objevil, pochází z dílny elninoslov. Jeho úkolem je extrahovat číslo z řetězce s alfanumerikou. Vzorec má v české lokalizaci 439 znaků a skutečně řádně funguje. Ale do vlastnosti FormulaArray ho pro jeho délku pomocí VBA vložit nelze.
Vyjadřuji hluboký obdiv autorovi, že takový funkční vzorec dokázal sestavit. Kladu si ale otázku, jestli je takové řešení účelné. Vsadím se, že bych dokázal napsat UDF ve VBA, která by umělo všechno, co ten megavzorec, a které by se skládalo z menšího počtu znaků, než ten vzorec. A hlavně - bylo by nepoměrně srozumitelnější...

@ elCHa
kdysi jste se na mne rozčílil, že jsem nedodržel přesné znění Vašeho nicku. Teď se Vám povedla žertovná úprava mého jména (opravu jen překlep?) Karle, domníval jsem se, že se budeme respektovat. K čemu je Vám posměch?
Excel objevuji 20 let a stále mám co objevovat. O tom formátu vím cca 18 let a jsem rád, že si ještě dokážu vzpomenout. Vám, který jste snědl moudro z hovna, se samozřejmě rovnat nemohu a ani nechci.
Navíc toto vlákno bylo určeno těm v Excelu, kteří danou informaci neznají a mohla by se jim hodit. Vám jsem ji opravdu neadresoval!

@marjankaj
Naprosto dávám za pravdu, že je to pro země s německou tradicí zápisu čísla hodně matoucí formát. Daleko lépe je na tom zápis stejného formátu ve VBA, např.:

Selection.NumberFormat = "#,##0.000,,"

Petře, už zase spolu diskutujeme. Pokud si odpustíme invektivy, pak mi to nevadí. Dovol, abych silně nesouhlasil s Tvým výrokem o mém filozofickém blábolu, což invektiva nesporně je.
Teď ke Tvé definici efektivity. Paměťová náročnost je přísně technický parametr, který uživatel naprosto nevnímá, pokud nenarazí na hranice svého hardwaru.
S časovou náročností jako kriteriem efektivity naopak plně souhlasím, ale ta musí být vztažena k celé době životnosti daného řešení (včetně předpokládané intenzity využití za dobu užívání). Jsou úlohy "na teď", kdy je nejefektivnější rychlé řešení, třeba na úkor doby zpracování dat. A jsou úlohy typu "furt a na roky", kdy naopak rychlost zpracování dat je dominantní i za cenu delší doby projekce. To nemusí být o lenosti řešitele, to je o posouzení, k čemu dané řešení slouží.
Posuzovat časovou efektivitu odděleně pro řešitele a pro provoz naopak pokládám za zásadní chybu úvahy.

Petře, a podíval jsi se do té přílohy, kterou jsem přidal? Kdyby jo, třebas bys mi porozuměl!
Volba formátu "Číslo" je jistě méně komplikovaná, stejně jako volba "Text" pro číselné literály. Mne ale napadlo zobrazení s řádovým posunem, vhodné zejména pro zpracování statistických dat. Kolik takových, kdo tohle ví a používá, znáš Ty?


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 37

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje