Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  8 9 10 11 12 13 14 15 16   další »

Opravdu nevím, v čem je problém. Před minutou jsem svému počítači sdělil, že si přeji otvírat soubory .PDF v internetovém prohlížeči. Pak jsem si ze sešitu přes FollowHyperlink otevřel pdf soubor a podíval jsem se do něj. Nato jsem křížkem prohlížeč zavřel - a byl jsem zpátky v sešitě, odkud jsem ten dokument zavolal. Takhle jsem to tady už jednou popsal, teď jsem se byl podívat, jestli to funguje furt stejně - a vono jo. Tak nevím...
Teď koukám, že se dotaz změnil a že jde o zamčený pdf. Tak to pardon, zamčený pdf otevřít bez hesla neumím!

Nejspíš máte jiný Excel než já a elninoslov. Popisujete problém, který v Excelu není! Ta chyba bude vznikat nejspíš mezi vaší klávesnicí a židlí...
Pardon, už to vidím:
nazev.Object.BorderColor = &H0&
Problém spočívá ve vašem pojetí toho, jak volat objekt...

@elCHa
Pokud jde o slovní vyjádření částky, máme shodný názor na textové zpracování vstupu. Stačí se podívat do střev mé funkce Castka 1 . Nastavit mou funkci o další řády by byla čistě mechanická záležitost. Mně šlo pouze o dosažení hranice 15 cifer pro buňku.
U problému s celočíselným zpracováním dat a nedostatečným rozsahem typu Long pro 15 cifer v buňkách má zase pravdu Lubo s typem Currency. Asi jsem si kdysi pořádně nepřečetl, jak je Currency definovaná a zbytečně složitě jsem bez ní mnohokrát řešil to, co s ní řešit vůbec nemusím. Tahle věc mi do budoucna značně usnadní život 1 .

Lubo má s typem Currency pravdu. Zde je definice typu Currency z nápovědy:
Currency variables are stored as 64-bit (8-byte) numbers in an integer format, scaled by 10,000 to give a fixed-point number with 15 digits to the left of the decimal point and 4 digits to the right. This representation provides a range of -922,337,203,685,477.5808 to 922,337,203,685,477.5807. The type-declaration character for Currency is the at sign (@).
The Currency data type is useful for calculations involving money and for fixed-point calculations in which accuracy is particularly important.
Tohle nebudu překládat! Je to plná odpověď na mé výhrady vůči VBA v Excelu, jemuž se tímto omlouvám! 1

Srandičky, srandičky! Vůbec jsem nečekal, kolik veselí způsobím 5 . Ale připomínka od Luba s datovým typem Currency je velmi užitečná. Nevzpomněl jsem si, nezkusil jsem, vyzkouším! Dík.
Jinak má elCHa pravdu s tím, že v názvech jednotek je pěkný nevěstinec! Evropská miliarda je americký billion a evropský bilion je americký trillion. To mi řekla Wikipedie. A to, že tisíc evropských bilionů je evropská biliarda (americký quadrillion), jsem si tam přečetl premiérově.
Smyslem vlákna bylo připomenout nepokryté pásmo ve VBA mezi desátou a patnáctou cifrou v celých číslech. To Currency mi možná odpoví. Jinak jde v zásadě o malér, který právě v účetnictví vyvolává zaokrouhlování. Součet zaokrouhlených čísel není nutně shodný se zaokrouhleným součtem čísel. A pro účetního je chybějící koruna prakticky stejný problém jako chybějící milion.
Pokud se nechci dostat do zaokrouhlovacích pastí, měl bych zaokrouhlování a čísla Single /Double pokud možno vynechat. To platí pro práci s penězi stejně jako pro práci s časem. Když budu v penězích pracovat celočíselně s haléři / centy (v čase se sekundami), vyhnu se "rozmazání" konců takových čísel. No a tady se mi snadno mohou hodit ona velká celá čísla, o kterých jsem tady dal řeč.

Není vyloučené, že kontrola při umístění sešitu na síti nepřestává fungovat, ale že jenom funguje se zpožděním. Změna, provedená v Excelu, se nepromítá bezprostředně na disk, ale provádí se až při automatické aktualizaci ve stanovených časových intervalech. To je také příčinou datových kolizí při sdílení sešitu. Navíc uvidět provedenou změnu z jiného počítače vyžaduje, aby se změněný sešit do tohoto počítače nově načetl.
Je možné nastavit režim práce sešitu tak, aby se sešit na disku aktualizoval po každé významné změně. To ovšem vyžaduje kousek programu ve VBA, který určí, co chceme pokládat za "významnou změnu". Aktualizovat po každé události Change by totiž zpravidla neúměrně a dramaticky zpomalilo práci se sešitem.
Téma režimu práce sešitu v podmínkách sdílení není jednoduché a pro "začátečníka v makrech" je přímo nevhodné. Proto jsem silně doporučil sdílení nepovolovat. V režimu bez sdílení by podle mne žádné problémy se sítí vznikat neměly (s výjimkou průběžného monitorování změn z jiného počítače).

Je všeobecně známé, že Excel pracuje na 15 platných cifer. V rámci tohoto pravidla je Excel schopný v buňce zobrazit celé číslo 999999999999999 a také s ním jako s celým číslem pracovat. Potřebuje k tomu jediné, a to numericky naformátovanou buňku (např. "0" nebo "# ##0"). Při obecném naformátování se nám od 12.cifry začne v buňce zobrazovat semilogaritmická podoba čísla (tzv.vědecký formát).
Z hlediska VBA je v této schopnosti práce s celými čísly na listu skryta dost významná zrada. Pro práci s dlouhými celými čísly má VBA k dispozici čtyřbytovou proměnnou Long se zaručeným rozsahem 9 platných cifer. Celá čísla z listu v rozsahu 10 až 15 cifer se tak ve VBA dostávají "do pásma nikoho".
Znalci Excelu mi mohou oponovat typem LongLong a Decimal; první z nich umí pouze 64bitový Excel, ten druhý neumí skoro nikdo. A to prosím nemluvím o skvělém doplňku xlPrecision, pro který není ani 200 platných cifer překážkou.
Na problém mne přivedl elninoslov, když začal skloňovat názvy jednotek zobrazeného času. To mi připomnělo notorickou úlohu slovního vyjádření finanční částky, požadovanou v některých úředních dokumentech. Existuje houf řešení této úlohy i pro Excel. Já jsem si přitom vzpomněl na někdejšího českého ministra financí, který veřejně přiznal, že neví, kolik nul má bilion. S vědomím, že Excel umí 15 celých cifer, rozhodl jsem se "pro pana ministra" napsat proceduru "částka slovy", která vy uměla i ty zrádné biliony.
Proceduru, která uměla všechny miliony, jsem si kdysi napsal. Když jsem ji teď chtěl rozšířit do bilionů, tvrdě jsem narazil. Proměnná Long umí něco přes dvě miliardy a dál ani ťuk. Když jsem ty biliony ale chtěl, musel jsem a věc z jiné strany.
Původně jsem patnáctimístné celé číslo rozdělil na "dolní Long" pro spodních devět řádů a "horní Long" pro zbylých šest řádů. To sice fungovalo, ale pro částku slovy to bylo dost neohrabané. Proto jsem přešel na rozdělení znakového řetězce s patnácti ciframi na pět tříznakových skupin pro jednotky, tisíce, miliony, miliardy a biliony. Z tohoto rozdělení už bylo poskládání částky slovy vcelku snadné. Jak rozdělení dlouhého celého čísla na dvě Long, tak trojmístné skupiny pro částku slovy najdete v příloze.

Hav-Rane, jsi ostřílený kozák a tvoje příspěvky mají vždycky váhu. Máš pravdu, že na síti už dlouhá léta nejsem. Proto jen velmi těžko mohu zjistit, co by bylo náplní speciální informace, pokud bych na síti byl. Tvoje vysvětlení je proto pro mne užitečné.
Nevím ovšem, k čemu mi je dobrý "ocinko" v záznamu o mojí změně v buňce. Tam mi připadne opravdu užitečnější, aby záznam obsahoval mojí identifikaci.
Naprosto souhlasím se tvým názorem, že tazatel by neměl dostávat úplně "rozžvýkané kuřátko", ale materiál, ze kterého už by měl být schopný svoje řešení vytvořit. Přímým převzetím hotového řešení se toho tazatel zpravidla moc nenaučí. Občas mám opravdu tendenci dodávat "řešení na klíč". Řešení na klíč jsou už třicet let hlavním zdrojem mých vedlejších příjmů. To se zřejmě promítá do povahy mých odpovědí tady na fóru. Zkusím se polepšit 5 .

Vidím, že záporný čas je vděčné téma. Záporný počet minut lze spočítat také rovnou jako =(B2-B1)*1440. Ještě víc mne pobavila následující modifikace mého vzorce ze 4.1.2016:
=KDYŽ((B2-B1)<0;"-";"")&HODNOTA.NA.TEXT(ABS(B2-B1);"d:hh:mm")
případně dokonce
=KDYŽ((B2-B1)<0;"-";"")&HODNOTA.NA.TEXT(ABS(B2-B1);"d:hh:mm:ss")
Obě verze přijímají vypočtené dny jako přirozenou součást údaje o času. Když to tomu formátu nevadí, proč toho nevyužít?

Omlouvám se, nezkusil jsem! Opravdu to funguje tak, jak píše Hav-Ran. Zmýlila mne hlavička. Myslím si, že by si ty tři informace, uvedené ve dvou řádcích jednoho sloupce, zasloužily být vedle sebe v jednom řádku kvůli následnému hledání ve vytvářeném seznamu. K tomu nevidím jako moc užitečnou informaci o autorovi programu (ocinko). Radši bych viděl uživatele, který provedl změnu. Stejně tak si myslím, že informace, pojmenovaná jako "počítač" není informací o počítači uživatele. Mně konkrétně se tam objevil text "FPS_BROWSER_USER_PROFILE_STRING=Default".
Pro srovnání jsem napsal to samé po svém. Snad si z obou verzí ocinko složí to, co mu bude vyhovovat. List Zoznam jsem skryl, ale lze jej lehce zobrazit. Pokud by ocinko chtěl, aby to nebylo tak snadné, mohl by list skrýt VeryHidden.

Podobný (ale skrytý) seznam akcí v sešitu jsem před léty řešil kvůli tomu, že docházelo ke sporům, kdo z uživatelů kazí data. Uživatelé se o vzniku tohoto žurnálového listu dozvěděli až po jeho prvním vyhodnocení. Efekt byl jednoznačný, chyby z dat prakticky okamžitě a zcela vymizely.
Zadání od ocinka jsem neviděl (rar nečtu). K řešení od Hav-rana mám dvě připomínky:
- na listu Zoznam mi chybí identifikace listu a buňky, kde došlo ke změně hodnoty,
- u úlohy, jak je postavená, se nesmí povolit sdílený updating sešitu. Sešit může postupně upravovat víc uživatelů, ale jen v režimu bez sdílení, tj. tak, že změny smí provádět v jednom čase vždy jen jeden uživatel. Jinak by hrozily datové kolize, které by nejspíš celou úlohu znehodnotily. Řešení bylo nejspíš v tomto duchu míněné, ale explicitně to říct by bylo určitě užitečně.

Udělám hříšný dotaz na jedno excelské tabu, které jsem četl už tisíckrát, které je shodou okolností také součástí zadání tohoto vlákna a jehož účelnost jsem nikdy nepochopil:

"výsledok som dosiahol len s pomocným stĺpcom".

Moje pohoršující otázka zní:
Co je na pomocných sloupcích tak špatného, že kvůli jejich vyloučení jsou skoro všichni ochotní dát si třebas nohu za krk? Pomocné sloupce plní přesně stejnou úlohu jako možnost substituce složitých výrazů v obecné algebře. S trochou nadsázky by se dalo říct, že Einstein napsal 22 stránek "pomocných sloupců", aby na 23.listu své Speciální teorie relativity mohl napsat své slavné E = mc^2. Pomocné sloupce lze skrýt, pomocné sloupce lze často umístit úplně mimo dosah uživatele, případně je zastoupit pojmenovanými vzorci. Čím je vlastně lepší nesrozumitelný megavzorec, než výpočet, rozložený do pochopitelného sledu operací?
Mně to velmi často připadne jako samoúčelné předvádění toho, že se bez pomocných vzorců dokážu obejít, což mne pasuje za odborníka.
Vzorce na listu nikdy nebyly středobodem v mých řešeních úloh Excelu. Uznávám ale jejich neskutečnou pružnost, sílu a účelnost. Pokud něco řeším pomocí vzorců, téměř vždy jde o úlohu, u které je rychlost jejího vyřešení její hlavní kvalitou. Vymýšlet hodiny, jak se v ní zbavit pomocných sloupců, mi zpravidla přijde jako zbytečné plýtvání časem.
Rád si přečtu, proč nemám pravdu. Prosím ale o skutečné argumenty, ne o politická hesla paní Merkelové.

Mám radost, že jste zabojovala! Takovým lidem rád poradím vždycky (když to zvládnu), protože tihle bojovníci mají chuť sami sobě dokázat, že na to mají. A taky se při tom nejvíc naučí. Víc emicek do světa Excelu!

Někde mezi mými 1500 archivovanýmí sešity to musím mít, ale nejspíš špatně hledám. Matně se mi vybavuje, že jsem svůj tříděný seznam dotřiďoval vlastním algoritmem, aby odpovídal českým lexigrafickým pravidlům. Formální chyby v pořadí sousedů to ještě zhoršovalo, ale slovníkově to bylo správnější. Můj úkol tehdy totiž zněl: udělej slovník podle české normy pro řazení hesel. S tím má Excel bohužel problém.
Opičákův způsob seřazení bude vytvářet správné pořadí sousedů pro funkce listu. To ale nemusí znamenat, že pro VBA toto řazení nebude mít "sousedské poruchy". A také si myslím, že vzorec ve sloupci F by se měl odvolávat na sloupec D, a ne na B 1 . Určitě to bude běhat na unikátních hodnotách. Duplicity v seznamu jsem nezkoušel.

Vzhledem k tomu, že sem zatím nenašel, co jsem hledal, udělal jsem si čtyřmi způsoby uspořádaný seznam znaků ASCII 32-255 a provedl jsem vyhodnocení jejich poradí testem na větší/menší pro sousedy. Nenašel jsem žádné standardní uspořádání znaků, které by v sobě neobsahovalo poruchy v pořadí při vyhodnocení sousedů. To je dost chlívek. Začínám být zvědavý, jak jsem se z toho kdysi vymotal! Snad to najdu...


Strana:  1 ... « předchozí  8 9 10 11 12 13 14 15 16   další »

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