Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  93 94 95 96 97 98 99 100 101   další » ... 122

tak už som poriešil i tento problém: je to na test hodnoty parametru SaveAsUi v tej udalosti BeforeSave. Stačí požiadať o pomoc a hneď sa mi rozsvieti...

Mno, a narazil som na ďalší problém:

Potrebujem, aby sa ten *txt(detaily v linku v predošlom príspevku)tvoril len v prípade, že BigExcel bude uložený pod pôvodným názvom v pôvodnom umiestnení na disku, čiže aby nebol *txt prepisovaný novým v prípade, že niekto sa rozhodne vytvoriť si z BigExcel svoju verziu napr. pomocou SaveAs.
Myslel som si, že to ošetrím testom na ThisWorkbook.FullName v procedúre Workbook_BeforeSave, ale to zlyháva. Meno a umiestnenie súboru po zmačknutí F12 (SaveAs) zostáva až do jeho zmeny pôvodné, čiže takto otestovať a zabrániť vzniku *txt z novej verzie BigExcel nejde. Takže, otázka znie tentokrát: Ako na tento problém?

tak, asi vyriešené, detaily, pokiaľ niekoho zaujímajú, tak tuná: http://excelplus.net/forum/viewthread.php?thread_id=850&pid=3687#post_3687

Ahoj,
riešim nasledujúci problém:
V adresári na sieťovom disku sa nachádza master workbook, pre ďalšie vysvetľovanie ho nazvem BigExcel.
V tom samom adresári je niekoľko podradresárov, každý z nich obsahuje workbooky, ktoré obsahujú dáta k jednotlivým riadkom z BigExcel. Tieto malé workbooky v ďalšom vysvetľovaní nazývam SmallExcel.
Niektoré dáta v BigExcel sa ťahajú zo SmallExcel priamo prostredníctvom linkov (externých referencií).
V opačnom smere - t.j. data z BigExcel idú do SmallExcel prostredníctvom AccessDB.
AccessDB má okrem iných 2 tabuľky:
Table1 - linkedTable z BigExcel
Table2 - nejaké ďalšie polia k jednotlivým riadkom z BigExcel, čiže dáta z Table1 a Table2 je možné spojiť prostredníctvom JOIN cez identifikátor (ID).

Teraz: V SmallExcel mám MS Query, ktoré spája uvedené 2 tabuľky z Accessu a na liste v SmallExcel je na základe uvedenej Query vytvorená Excel Table. Toto funguje, ale s jedným problémom: Pokiaľ má niekto na inej mašine otvorený BigExcel, tak refresh Query spôsobuje i otváranie BigExcel v inštancii Excelu, v ktorej sa nachádza ten SmallExcel s danou Query. Hľadám spôsob, ako zabrániť otváraniu toho BigExcel. Nevie niekto náhodou, čo s tým?

@Opičák: ale dal, nič na tom nie je. Vytvoríš si pomocné stĺpce a tie postupne nacpeš do výsledného vzorca, takže Ti nakoniec vznikne uvedená obludnosť 1 . Nie je to príliš trackovateľné, takže častokrát je lepšie voliť pomocné medzivýpočty, alebo napísať UDF. Ale držal som sa zadania, v ktorom OP požadoval vzorec v jednej bunke 1

@Opičák: takže funguje, viď? 1

@Opičák: (MV jsem zadal)
tomu nerozumiem, co je MV?

mne to funguje 1 , písal som, nutné zadať v maticovom tvare..

edit: aha, už chápem, zadal si v maticovom tvare...
proste, funguje to..

Pokiaľ v jednej bunke bez pomocných výpočtov, tak krapet dlhší maticový vzorešek 1 :

=VALUE(RIGHT(MAX(VALUE(LEFT(oblast1; LEN(oblast1)-5))+RIGHT(oblast1; 4)*1000000; VALUE(LEFT(oblast2; LEN(oblast2)-5))+RIGHT(oblast2; 4)*1000000; VALUE(LEFT(oblast3; LEN(oblast3)-5))+RIGHT(oblast3; 4)*1000000; VALUE(LEFT(oblast4; LEN(oblast4)-5))+RIGHT(oblast4; 4)*1000000); LEN(MAX(VALUE(LEFT(oblast1; LEN(oblast1)-5))+RIGHT(oblast1; 4)*1000000; VALUE(LEFT(oblast2; LEN(oblast2)-5))+RIGHT(oblast2; 4)*1000000; VALUE(LEFT(oblast3; LEN(oblast3)-5))+RIGHT(oblast3; 4)*1000000; VALUE(LEFT(oblast4; LEN(oblast4)-5))+RIGHT(oblast4; 4)*1000000))-4))&"-"&LEFT(MAX(VALUE(LEFT(oblast1; LEN(oblast1)-5))+RIGHT(oblast1; 4)*1000000; VALUE(LEFT(oblast2; LEN(oblast2)-5))+RIGHT(oblast2; 4)*1000000; VALUE(LEFT(oblast3; LEN(oblast3)-5))+RIGHT(oblast3; 4)*1000000; VALUE(LEFT(oblast4; LEN(oblast4)-5))+RIGHT(oblast4; 4)*1000000); 4)

@Paloo: statik89 musi mat radost ked to cita :))
Asi chápem, ako to myslíš. Na druhej strane, výpočet argumentov, ktoré tu padli je napr. pre mňa určite prínosom, takže: statik si odnesie, čo potrebuje (funkčný kód) a ostatní (vrátane statika), pokiaľ majú chuť, tak majú príležitosť sa niečomu priučiť, prípadne konfrontovať s postupmi, ktoré sami pri písaní kódu používajú 1. Za mňa veľká vďaka 1

Nicméně já se snažil dojít ke kroku, kdy budeš mít třeba aktivní pole, kde nastavíš datum a přes vzorce se ti přepočítá graf. (to je to, co neumím)...
Však to je to, čo som zmieňoval: V podstate si do nejakej bunky načítaš počiatočné dátum, v tomto prípade teda 21/8/2013 0:00. Danú hodnotu potom odpočítaš od jednotlivých časových údajov, tak sa zbavíš dní, zostanú Ti iba hodiny. Presahy cez polnoc poriešiš podmienkami, je to celé brnkačka....

No a pokiaľ by si chcel dynamické grafy, tak cez pomenované oblasti....

Idem driemať, snaž sa chvíľu sám 1

inak, ku grafom:
zadaj do googlu
Jon Peltier
Andy Pope
alebo Roberto Mensa
vypadnú Ti zaujímavé návody na tvorbu grafov, tí páni sú trochu iný level 1

Pozri sa na poslednú verziu, ktorú som vytvoril. Smekať nebudeš musieť, páč, nie, že by to bolo makrom neriešiteľné, ale nemám bohužiaľ zas tak moc času, veci, ktoré som schopný dať dokopy behom pár minút, neriešim, ale nie všetko som ochotný robiť úplne zadarmo 1

Som to upravil, malo by to pmn fungovať podľa predstáv, ďalšie už si dorobíš sám...

ako som zmienil, mal by si sa pokúsiť zo zdrojových dát (z dát, z ktorých tvoríš graf) eliminovať tú "dennú" zložku. Pokiaľ ju tam totiž necháš, tak samozrejme, že graf, pokiaľ dáš určiť minimum automaticky, sa začne prekresľovať od 1/1/1900 0:00. Problém je totiž s prvou datovou sériou (stĺpec C). Myslím si, že malou modifikáciou spôsobu, ktorý som naznačil, sa dopracuješ kýženému výsledku.
Ad presah cez polnoc - dá sa riešiť pridaním ďalšej datovej rady, ktorú sformátuješ rovnako, ako predošlú, tým pádom sa v grafe vykreslia ako spojitý jednofarebný bar.
Iným spôsobom je nechať dáta tak, ako sú, pridať pomocné stĺpce a od nich odpočítať počiatočné dátum. Odpadne tak nutnosť úpravy dátumov bunku po bunke. Graf necháš vykresliť na základe dát z takto vytvorených pomocných stĺpcov. Je to riešiteľné, to zvládneš, začiatočník nie si 1

edit:
ad úprava E50 (platí pre všetky bunky v stĺpcoch trvání): =IF(C50="";"";IF(D50<C50;1+D50-C50;D50-C50))

tu to máš

Pokiaľ tomu správne rozumiem, tak v jednom grafe je vždy len rozsah 24 hodín (od polnoci do polnoci).

V tom prípade doporučujem upraviť zdrojové dáta na liste matice tak, aby časový údaj zobrazoval vždy iba hodiny, t.j. pomocou funkcie INT odstrániť tú "dennú" zložku toho čísla.

Konkrétne: pre bunku C2 by upravený vzorec bol:
=IFERROR(VLOOKUP(1&$A3;Zdroj_Matice!$B:$O;12;0)-INT(VLOOKUP(1&$A3;Zdroj_Matice!$B:$O;12;0));"")

Týmto spôsobom si uprav dáta pre jednotlivé data series a v grafe potom pre vodorovnú osu nastav ako minimum nula a ako max 1.

Ešte som malinko upravil vzorec v stĺpci F (pre pauzu), výsledok v prílohe. Možno si to budeš musieť ešte odladiť, ale v zásade už odpadá nutnosť meniť škálovanie, cestu som, myslím, naznačil...


Strana:  1 ... « předchozí  93 94 95 96 97 98 99 100 101   další » ... 122

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