Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  64 65 66 67 68 69 70 71 72   další » ... 140

Mno
řešení [<1000]0,00;[>999999]#\.###\.000,00;#\.##0,00 má jednu obrovskou nevýhodu. Pro záporná čísla nefunguje (sloupec C v příloze). Pokud jsou čísla kladná - postačí

Pokud je hodnota napsána ručně, od E2007 bych použil podmíněné formátování (sloupec B v příloze).

Pokud je hodnota výsledkem vzorce, použil bych HODNOTA.NA.TEXT (sloupec C v příloze).

Ano sám si vytvoří - ale co s tou minulou? Kdy jste ji zavřel? ;)

Já myslím, že ano - i když mi to všechno přijde zbytečně moc komplikované. Vydal bych se cestou, kterou jste ukázal už na začátku.

Berte to jako upozornění na problém s deklarací pomocí As New.

Nasimulované to nemám - vycházím z předpokladu, že vím, že excel globální proměnné zapomíná (vlastní zkušenost nebo např. http://www.tushar-mehta.com/publish_train/xl_vba_cases/1017%20Save%20a%20global%20in%20an%20Excel%20workbook.shtml).
Pak ve Vašem případě.
1) Otevřete sešit a zároveň vytvoříte novou skrytou instanci.
2) Necháte sešit otevřený dlouho bez činnosti. V té době zapomene excel, že skrytá instance spojena s xlApp - ta je tedy nothing.
3) Provedete činnost, která zavolá xlApp (u Vás by měl stačit výpočet) - ta jest Nothing => Nová instance + ta stará tam zůstala viset. Netvrdím, že se to musí stát, ale považuji to za pravděpodobné.

Toto asi těžko nasimulovat. Musel byste mít náladu to zkoušet. Navíc, já nevím s čím je spojeno ono zapomenutí (potřeba uvolnění paměti?) - více jsem to nezkoumal. Mně stačí, že vím, že to nastává a tak s tím prostě počítám. U mne to nastává ve spojení s Ribbonem - typicky celý den otevřený excel.

Snad je to alespoň trochu pochopitelné.

@elninoslov
Vaše řešení beru jen jako perličku, že to takhle lze.

Máte globálně deklarovánoDim xlApp As New Excel.ApplicationToto je potenciálně nebezpečná deklarace. Pokaždé, když v kódu budete volat xlApp a ona v tu chvíli bude Nothing, otevře se Vám nová instance excelu. A ve spojení s tím, že excel může globální proměnnou po nějakém čase zapomenout, tato situace může nastat a pravděpodobně při delším otevření sešitu i nastane. Navíc Vám ani nepomůže testovatIf xlApp Is NothingVyzkoušejte následující kód, snad Vám to objasníSub test()
xlApp.Quit
Set xlApp = Nothing
'nyní je nastaveno nothing, přesto se místo chyby vytiskne text a zobrazí se okno aplikace
Debug.Print xlApp.Caption
xlApp.Visible = True
End Sub
Tato deklarace má své využití, ale toto by neměl být ten případ

@lubo
mně by také zajímalo, proč přidávají další fce, když stačí opravit ty staré. Pokud se bojí zpětné kompatibility, tak se bojí špatně.
Navíc - pokud jsem to pochopil
CEILING, FLOOR jsou přeložené, ale ty s tečkou už ne...

Trošku opravím svůj postoj - ano fce MROUND je problematická. Osobně nechápu smysl záporného intervalu (2. argument) - interval 5 a -5 je stejně velký, takže v těchto funkcích by to buď mělo automaticky hodit chybu nebo lépe vzít vždy absolutní hodnotu. Rozhodně by se fce CEILING, FLOOR a MROUND měly chovat stejně a neměly by mít problém se záporným číslem (1. argument).

Určitě bych ale nepoužil pomalou UDF a raději se obrátil na rychlejší ROUND.

@marjankaj
ano, to jsem si také našel - ale je to řešení neřešení - je tam zbytečná operace navíc, která tam být prostě nemá

Mno - jednoduchý dotaz. Říkal jsem si - tady poradí někdo jiný. Ale když už je tu 3. strana - tak jste mně to donutili přečíst ;)). Přečtu si to ještě jednou a pomalu a pokud budu mít co dodat, dodám. Nicméně, pokud bych měl něco dodávat - tak bych to vlákno ne "rozdvojil", ale minimálně roztrojil. A tak asi budu potichu ;)))

No - když se nad tím zamyslím - tak bych MS zase tolik nekritizoval. Funkcí k zaokrouhlení je z mého pohledu 8 ROUND, ROUNDUP, ROUNDDOWN, CEILING, MROUND, FLOOR (mluvím o verzi 2007 - koukám, že přibyla na první pohled zbytečná varianta .PRECISE), ODD a EVEN. Ano - můžeme samozřejmě používat pouze TRUNC (USEKNOUT) a k výsledku se dostaneme. Nicméně nám přibude operací a taky ty vzorce nebudou moc přehledné. Zvlášť, pokud je zaokrouhlování součástí nějakého "megavzorce". Takže těchto 8 mi přijde jako přijatelný kompromis. Samozřejmě - jak psal lubo - můžeme zaokrouhlovat i dalšími funkcemi (další je třeba DOLLAR).
Pokud jsou v excelu další funkce, které dělají totéž - tipl bych, že to nebude s iniciativy programátorů, ale prostě to uživatelé požadovali. Je to ale pouze moje domněnka.

Problém je v překladu - funkce se překládat neměly a tak bychom se je všichni naučili stejně - ale to je pořád dokola.

Takže závěr - pokud někdo nechce, nemusí používat žádnou a vystačí si i s TRUNC a ROUND - já se využití nevyhýbám a když o fci vím a mám pro ní využití, tak ji použiju a hlavně ji použiju správně. Když vidím, že ji někdo správně nepoužije - upozorním ho na to. Jestli si to vezme k srdci nebo řekne, že to takhle má schválně, to už záleží na něm. Nemám s tím problém. Vlastně to říkám pokaždé - pokud řešení uživatel udělal sám, ví jak to udělal a ví jak si to opravit v případě problému nebo změny - je to pro mně OK.

V excelu ne. Ve wordu ano a ta určitě se dá propojit na data z excelu...

=COUNTIF(List2!$A$1:$A$100;A1)>0

Našel jsem ten lubův odkaz
http://cz.excel-translator.de/translator/

No - jen tak z legrace. Když to nemá být doplněk - napsal jsem skript, který přeloží vzorec (automaticky pozná, jestli je anglicky nebo česky) Chtěl jsem rozlišit i R1C1 - ale ta potvora si to vloží do buňky ve tvaru, v jakém je excel nastaven. Šlo by si s tím pohrát, ale nechce se mi - možná někdy pokud by byl zájem ;)) . Taky jsem to testoval jen na 2 příkladech a to na=SUM(A1)
=SUMA(A1)
a na svém nedávném vzorci=SUBTOTAL(3;B2)+KDYŽ(JE.ČISLO(A1);A1;0)
=SUBTOTAL(3,B2)+IF(ISNUMBER(A1),A1,0)
Oběma směry to fungovalo správně.

Bohužel, pokud někdo chce překládat tímto způsobem (Formula - FormulaLocal) tak bude vždy záležet na lokalizaci instalovaného excelu. Tzn - kdo má anglický excel, asi nemá cenu zkoušet ;))). Pro slováky zase nemá cenu vkládat český vzorec, to je asi taky jasné.
Kdysi tady dal tuším lubo odkaz na nějaké stránky, kde lze překládat mezi různými mutacemi.

Pokud sem ovšem vložím vzorec anglický, tak není problém si vložit do jakékoliv lokalizace (http://elcha-en.blogspot.com/2015/01/easy-and-quick-formula-translation.html).

@Lukas-85
Mno - ten dotaz je moc obecný - chce to přílohu.
abych zadal například rozměry, barvu a výsledek by byl seznam který by splňoval mím zadaným kritériím
Ale v podstatě je to jednoduché - pokud chcete filtrovat, tak prostě zadáte do databáze ten "rozměr" tolikrát (na tolik řádků) kolik může mít barev a k této kombinaci vyplníte všechny ostatní údaje. Pak vyfiltrujete rozměr+barvu a máte to.

Při spuštění nástroje se skryje aplikace a to i v případě, že už je otevřen jiný sešit. Pokud nástroj zavřu, tak se mi ovšem aplikace zpět nezobrazí a zůstává spuštěná (ve Správci úloh mám stále proces EXCEL.EXE*32). Sešit, který jsem měl otevřen zůstává otevřen v této skryté instanci excelu a já už jej znova otevřu pouze pro čtení, protože je právě používán. Zkusil jsem v této situaci znovu nástroj spustit a nastala chyba "Run-time error '429'" - nelze vytvořit objekt ActiveX. Bohužel je to ten typ chyby, který když Vám chci přesně říci, kde se vyskytne tak po stisku Debug se zobrazí Pruh.Show a pak to vše projde. Ale může to mít něco společného s Workbox - protože u Workbox.Clear se mi to zastavilo také.

Jestli mohu:
než si hrát se skrýváním aplikace raději bych převedl nástroj jako doplněk. Mělo by to navíc tu výhodu, že by bylo možno načíst vzorec z aktivní buňky a přeložit. To by podle mne dávalo smysl.
Varianty vzorců R1C1 - pokud jsou relativní - se vztahují k právě aktivní buňce. Takže bych vložil nějaký label, který by na toto upozornil (Relativní odkaz vztažen k buňce: A1)

Je to Váš nástroj, takže je to na Vás. Já sem v případě složitého vzorce vkládám jeho českou i anglickou verzi.

@Vovka
Upřímně - pokud je to naposledy, co jste zmínil to, jaké máte zkušenosti, tak nezbývá než Vám poblahopřát, že jste měl to štěstí a byl u vzniku tohoto odvětví a jeho součástí.


Strana:  1 ... « předchozí  64 65 66 67 68 69 70 71 72   další » ... 140

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