Zkuste v hlavním workbooku provést ruční přepočet sešitu (nebo přepočet vyvolejte jinou akcí). Mělo by to pomoci. Proč se chování po reinstalaci změnilo, mne zatím nenapadá.
eLCHa napsal/a:
Pokud Vás to zajímá - připravte jiný kód, dejte jej do sešitu a do doplňku. Otestujte a pokud se to bude chovat stejně, vložte to sem. Třeba na něco přijdeme. Pokud se budeme bavit teoreticky, určitě nepřijdeme na nic.
Moje špatná zkušenost s více Excely na jedné mašině je zase taková, že automatický update od Microsoftu (ve Windows 10) pro souběžnou instalaci E-2010 a E-2013 mi rozhodil chování Excelu 2010. Konkrétně jde např. o událost BeforeRightClick na listu, která u mne přestala respektovat použití parametru Cancel. Nikomu jinému z dotázaných se to nestalo; ti ale měli v mašině vždy jen jediný Excel.
Toto je klasická diskuse o vytržené a nepodstatné zmínce v příspěvku. Měl jsem držet hubu o tom, co ten doplněk dělá. Podstatou příspěvku je, že procedura v doplňku počítá čtyři a půl krát pomaleji, než když je spuštěná z paralelně spuštěného sešitu. To by vás, pánové, mělo zaujmout, a ne nějaký blbý šperhák. To zpomalení byla podstata mého příspěvku. A zajímalo mne, jestli už někdo podobný zpomalovací efekt zaregistroval, případně pro něj dokonce zná vysvětlení. Toto není žádné filozofování, toto je zásadní otázka k výkonnosti Excelu.
K obsahu doplňku. Nehodlám tu proceduru zveřejňovat. Našel jsem ji na volně dostupném místě na internetu a necítím k ní žádná práva pro její další šíření. Jednak nejsem autorem algoritmu, druhak cítím jeho nebezpečnost v nepovolaných rukách. Ctím totiž zásadu, že když někdo něco pod heslem zamknul, nepřál si, aby tam druzí chodili. A obráceně: pokud něco, co jsem nezamknul, dám volně na internet, musím počítat s tím, že to jiní použijí. Tohle se snad dá pochopit, dodržovat a respektovat.
Zaujal mne výrok "know-how na listu bez maker je umění králů". Každé know-how je uměním králů. Vždycky se najdou skuteční králové, kteří ho vytvářejí, ale i ti, kteří ho tvořivě používají, a také ti, kteří ho bezostyšně kradou. Jestli se to děje na listu bez maker, není podle mne zas tak podstatné.
Odkaz, který poslal AL, je užitečný. Není to tak dávno, kdy jsem si chtěl po letech oživit zadávání hlavičky pro rozšířený filtr a k mému překvapení jsem ten popis v nápovědě Excelu nenašel. Kdysi tam se zárukou byl. Jestli jsem špatně hledal, nebo ho vývojáři v návodu vynechali, to nevím. Každopádně jsem si musel ze svých zapamatovaných střípků tu hlavičku metodou pokus/omyl poslepovat bez nápovědy.
Zaslaný odkaz mi teď chybějící výbavu nápovědy v podstatě vyplnil. Takže jsem si tu stránku pro strýčka příhodu z webu stáhl i s obrázky do svého archivu. Dík za odkaz!
Nápad nainstalovat si zkušební verzi slovenského Excelu je hezký, ale nemám dobrou zkušenost s více Excely v jedné mašině. Žádná další pomoc se nekonala, a tak jsem se rozhodl, že to napíšu a pustím syrové do světa. Pokud to nikdo nepoužije, zůstane to v syrovém stavu. Pokud mne někdo upozorní na případné vady, zkusím s tím něco udělat.
Použitá metoda v podstatě brání tomu, aby nástroj mohl sloužit ve slovenském Excelu. Překlad z češtiny do angličtiny a zpět se řádně a automaticky provede pouze v českém Excelu, zatímco převod mezi slovenskou a anglickou verzí se v podstatě týká pouze interpunkce ve vzorcích, což provádím algoritmicky.
Samotné použití je primitivní. Kdekoliv na internetu si nahraji slovenské znění vzorce pomocí Ctrl-C. Přejdu do otevřeného převodníku a klepnu na připravené tlačítko. Pokud bude převodník vzorci rozumět, nabídne jeho anglickou i českou podobu. Když do schránky nahraji české znění vzorce, mohu druhým tlačítkem získat anglickou a slovenskou podobu. Ale znovu musím zopakovat - běhá to jenom v českém Excelu
Když nástřel, tak nástřel. Na vzorečky jsem chabrus a víc automatiky jsem do hry nedokázal vymyslet. Úplně jiné kafe by mohlo vzniknout na stejné struktuře s použitím VBA. Do toho jsem se ale nepustil, když tvoje zadání je čistě vzorečkové.
Dřív než zítra se k tomu nedostanu. Blok buněk pro stav skladu je rozumný požadavek. Nejspíš to ale nebude tabulka, ale zobrazení stavu položky a nějaký ten dialog k tomu. To ještě uvidím.
Pochopitelnost pro excellaiky pokládám u uživatelských úloh za nejvyšší prioritu. V tom se nejspíš shodujeme.
Domnívám se, že by té evidenci silně prospělo, kdyby místo jedné volně sypané tabulky pohybů vedle sebe stála tabulka příjmů a tabulka výdejů, které by mezi sebou pomocí vzorců komunikovaly. Pochopitelnost by určitě nepoklesla a počítání by se zjednodušilo.
Jednak je to podle mne napsané zbytečně složitě, druhak se to česky musí napsat jinak. Např. takto:
=HODNOTA.NA.TEXT(B2;"dddd d.mm.rrrr")
Opět tu je problém, že slovenské vzorečky v českém Excelu neplatí...
V tom případě se domnívám, že nebyla vytvořena vhodná struktura pro tabulku s evidencí skladové položky. Z toho pak vyplývá složité řešení těch problémů, které uvádíš.
Mám dvě doplňující otázky:
- rozumím dobře tomu, že jde o sklad s režimem FIFO (first in, first out)? Tedy, že se z něj zásadně fyzicky vydává nejstarší doručené zboží?
- má být ze skladu vydáváno zboží podle původní nákupní ceny (aktuální průměrná cena zásoby není podstatná), nebo podle průměrné ceny aktuálního množství na skladě (příjem mění průměrnou cenu zásoby, výdej nikoliv)?
Odpověď na tyto otázky určuje, jak má vypadat datová struktura evidence o položce a jaké vzorečky mají být použity. Podle toho také vznikají (nebo taky ne) speciální stavy, uvedené v příkladu. Maximálně dvě alternativní ceny se mohou (ale nemusejí) projevit ve složitosti vzorečků pro evidenci.
Poznámka na závěr: je zřejmé, že nemohu nahrát víc řádků pod sebe, než kolik dovoluje excelský list. Kvůli tomu ale není nutné vytvářet další listy, jak jste si přál. Stejně dobře (a z hlediska použití možná lépe) může posloužit vytváření bloků dat, ležících na jednom listu vedle sebe. Při povolených 16000 sloupcích mám na jednom listu možnost položit vedle sebe např. 3200 bloků po pěti sloupcích, každý s milionem řádků. Garantuji vám, že je to daleko víc, než kolik je k dispozici "systémových prostředků" pro Excel na libovolném myslitelném PC.
Uložení dat z jednoho zdroje na jednom listu se mi jeví jako kompaktnější způsob importu dat do excelského sešitu, než ten, který jste zvolil.
Vaše úloha s importem extrémně dlouhé datové tabulky mi nakonec připadla dostatečně obecná, abych pro ni napsal samostatný algoritmus a zařadil si tento sešit do svého archivu standardních úloh.
Sešit s velmi podrobným komentářem procedury je v příloze. Snadno tam najdete, jak nastavit maximální počet řádků na listu i jak změnit nastavený počet polí v řádku. Data se importují do nově vkládaných listů volajícího sešitu. Navíc proti zadání se také konvertují desetinné tečky na čárky, aby se datům zachoval numerický obsah v českém Excelu.
Teprve teď jsem se podíval do přílohy od tazatele. Pro tabulkovou sestavu, kterou příloha představuje, je můj zaslaný postup možná až zbytečně složitý, i když k rozsekání příliš dlouhého zdroje na dílčí úseky je použitelný. Po rozsekání by bylo vhodné jednotlivé části importovat do Excelu jako načtení externích dat do jednotlivých listů.
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.