Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  252 253 254 255 256 257 258 259 260   další » ... 302

Ak tam nemate rovnaké miesta, na radenie to nemá vplyv. Radenie s tým iba proste počíta. Odmenu Vám to tam predsa dáva tak ako je treba, len keď chcete namiesto prázdnej bunky mať 0, tak zmente v danom stlpci vo vzorci "" na 0. Podľa mňa to funguje presne ako ste chcel. Povedzte ešte ktoré stlpce v tej zdrojovej tabuľke potrebujete, ostatné zrušíme, a prípadne upravíme vzorce. Žiadne makro nepotrebujete. Ani potrebu dalšieho stlpca nevidím. Alebo Vám to vzor ami nevyhovuje?

A o ktoré zaškrtávacie políčko sa má jednať ? Sú tam 2. Alebo ich tam bude 6, čiže na každom riadku jedno, a aktivácia tlačítka prebehne ak je hociktoré z nich zaškrtnuté, a opačne deaktivácia prebehne ak sú všetky nezaškrtnuté ?

Alebo, a to skôr, to bude tak, že tlačítko sa aktivuje pri ktoromkoľvek zaškrtnutí, ale s tým, že tlačítko vykoná zápis iba zaškrtnutých riadkov, tie potom zmaže, a nezaškrtnuté riadky nechá a poposúva ich (ak medzi nimi ostala medzera). Že to bude takto ?

Na to si ale budem musieť nájsť viac času. Možno večer...

EDIT: A hodnota CheckBoxu sa zisťuje z prepojenej bunky, a taká nieje tak napr. takto:
Abs(Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value > 0)
Ale je nanajvýš vhodné si premenovať CheckBoxy na vlastné názvy, nenastane kolabs pri prenose na inojazyčný Excel.
Nájsť a vybrať - Tabla výberu - dvojitý klik (nie dvojklik)

Zo srandy som na to pozrel, a hneď ma napadla možná "nekalosť", v našich končinách žiaľ hojne zaužívaná - stáčanie km.
Vzorec od pepe74287 hľadá maximálne km, čo by malo byť aj správne a logické. Ak chcete skontrolovať, či najväčšie km má posledný záznam vozidla, použite tento
SK
=INDEX($B$2:$B$11;MAX(($A$2:$A$11=D2)*(ROW($A$2:$A$11)-1)))
CZ
=INDEX($B$2:$B$11;MAX(($A$2:$A$11=D2)*(ŘÁDEK($A$2:$A$11)-1)))

Ak potom odčítate vzorce od seba musíte dostať 0, ak nie, nieje niečo v poriadku, buď omyl, podvod, dáta do DB zadané v zlom poradí, ...

Tu je ten príklad bez makra. je tam aj súbor s makrom, v ktorom som si vytvoril tie odkazy, aby sa nemuseli ručne, a potom sa to používa bez makra, ale je v tom háčik. Súbor, je kvôli tým 5000 odkazom obrovský (4,1 MB).
http://uloz.to/xxHuRpY2/ext-rar

Tak keď bude čas, pozriem ešte na tú makro-verziu s ExecuteExcel4Macro... prípadne Worksheet_Change.

@marjankaj: No to určite, ja práveže slovné úlohy takmer nikdy nedokážem "dešifrovať" 5

EDIT:
Tak do prílohy dávam ešte riešenie pomocou makra s detekciou zmeny údaju v A, a automaticky priradí do B správny odkaz, kopírovanie vzorca postráda zmysel.
A ešte verziu s ExecuteExcel4Macro v UDF (s u niekoho problematickým Excel.Application objektom), ktorú si síce môžete nakopírovať vložiť kamkoľvek s parametrom bunky ktorá obsahuje číslo súboru, čiže je to kopírovacie ťahaním, ale má to jedno veľké mínus. Nedajú sa vypnúť hlášky o nesprávnom odkaze. Resp. som neprišiel na to ako. Vypnúť DisplayAlerts ani EnableEvents nezaberá.

No cez tablet bez makier sa to nedá vysvetliť, snáď, keď bude čas... Fubguje to OK, a vysvetlenie spáchame inokeky.

Ja som to pochopil výnimočne hneď , s tým sa musím pochváliť, lebo to sa nestáva 5 .
Teraz k veci, mám niečo už rozrobené, žiaľ nedostatok času, aj teraz len z tabletu ...
1. Makro použijeme tak či tak.
2. Makrom môžeme do pomocného listu vytvoriť 5000 odkazov na súbory, tak že v A bude číslo (názov súboru), a v B link na hodnotu v súbore. Makro potom vymažeme, súbor bude bez makra.
3. V hlavnom liste hlavného súboru v B, použijeme VLOOKUP/POZ.VYHLEDAT.
=VLOOKUP(A1;LinkList!A1:B5000;2;0)
Do A si zadáme zošit, ktorý chceme, vzorec bude kopírovateľný, bude to bez makra, a rýchle.
4. Len treba zabrániť hláškam o neexistujúcom prepojení, keď bude dopredu viac prepojení pre prípad pridávania súborov.
5. Môžeme v udalosti Worksheet_Change v A odchytiť zmenu a makrom vložiť do B správny link, v tomto prípade kopírovanie vzorcov netreba, stačí napísať názov súboru do A. Nevýhoda je, že prídeme o Undo funkciu.
6. Môžeme použiť ExecuteExcel4Macro, kde musíme buď vytvárať novú inštanciu Excelu v každom volaní UDF, alebo sa použije globálna premenná inštancie, čo je podstatne rýchlejšie. Súbor bude bez otvárania, vzorec kopírovateľný.
7. Použiť ADO Record na ťahanie dát ale rovnako makrom v UDF, čo má tiež značnú réžiu.

Ja som za uskutočnenie krokov 2, 3, 4. Len ako vyradiť tie hlášky a nutnosť vyberania umiestnenia pre 5000 súborov.

A nemôžete použiť ComboBox ActiveX ?

Áno. Otvorte si zošit v ktorom sa chcete odkazovať. Otvorte si aj ten na ktorý sa chcete odkazovať. V tom, v ktorom budete písať vzorčeky, si ich napíšte tak, že pri písaní vzorca pri potrebe odkazovať na iný zošit sa do toho zošitu prekliknete na miesto ktoré potrebujete, a pokračujete v písaní vzorca. Enter. Ten zošiť z ktorého sa mali ťahať dáta zatvorte. Vzorce v zošite, kde ste ich písal by sa mali samé zmeniť na vzorce s plnou cestou k súboru. A funkčné.
Má to ale množstvo obmedzení, napr, absolútna cesta, čiže nemôžete meniť cesty k súborom.

Tak skúste. Ale vidím tam opäť problém. Ak si vložíte riadok v dni, tak sa do nového riadku dátum nevloží. Dá sa odchytiť vloženie riadku, ale musí sa použiť udalosť Worksheet_Change, čo má za následok stratu možnosti Undo v zošite. Tak rozmýšľam, či by sa nedalo urobiť ešte jedno tlačidlo, ktoré by spustilo procedúru, ktorá by skontrolovala vyplnenie všetkých dátumov v skrytom stĺpci C. Čiže by ste zaviedli kultúru, že po pridávaní a uberaní riadkov v dňoch, by sa použilo kontrolné tlačítko. Zabránilo by sa nefunkčnosti podmieneného formátovania pri prípadnom odkazovaní na "prázdny" dátum v pridanom riadku. Nemali by ste tak prísť o Undo.
Ak ho užívatelia oželejú, tak to môžeme urobiť v Worksheet_Change...

Presne tak, vždy si pozrite vzorec najskôr obyčajným kliknutím na bunku, či nieje maticový (obalený zloženými zátvorkami {...} ), pred tým ako doňho vstúpite dvojklikom, či vstupom do editora vzorcov, lebo tieto zátvorky Vám hneď zmiznú. A dopísať ručne sa nedajú, musíte iba stlačiť Ctrl+Shift+Enter. Tiež som sa tým kedysi mýlil.

Tak ?

Radenie čisto vzorcami, bez makra. Počíta sa aj s rovnakým počtom bodov. Sú na to potrebné 3 stĺpce (oranžové). Tie Vaše ,ak sú duplicitné (napr. Body) alebo nepotrebné (napr. Kvalifikace), treba zrušiť. Čísla v dátach som trochu zmenil, aby som navodil určité situácie, tak si to vyskúšajte.

Skúste teda toto:

Tak ?

Hmm, niekoľko problémov.
1. Výška tabuliek je vždy nemenná ?
2. Funkcia RANK v Q nemôže byť takto ako to máte. Lebo ona RANKuje všetky (!) hodnoty z O. Vy až po oRANKovaní vylúčite niektoré. To je zle, veď skúste zmeniť v riadku VZA 13550 na 12550. Kde sa Vám podela oRANKovaná "3" ?
3. Na čo presne slúži tá tabuľka 2 ? Potrebujete ju mať takto ako ju máte, alebo sa dá zmeniť a použiť ako ÚPLNÝ zdroj pre tabuľku 3. Ak to musíte mať takto, tak si ako zdroj pre t3 urobte ešte jednu, ktorá bude už vypočítaná, aby ste v t3 nepoužívali vzorce, ktoré odkazujú na inú tabuľku.
4. V t3 vzorce? To asi fungovať nebude, keď vy chcete meniť hodnoty, ich poradie, ale vzorce budú čerpať dáta z iných riadkov (po "zoradení").

Podľa mňa je ten návrh nešťastný.


Strana:  1 ... « předchozí  252 253 254 255 256 257 258 259 260   další » ... 302

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