Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  239 240 241 242 243 244 245 246 247   další » ... 289

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ý.

Napr.

Myslíte niečo takéto ?
SK
=SUBSTITUTE(REPLACE(B2;1;FIND("\Nav.";B2)+4;"");".docx";"")
CZ
=DOSADIT(NAHRADIT(B2;1;NAJÍT("\Nav.";B2)+4;"");".docx";"")
Ten kód slúži ako oddeľovač a musí začínať na "\Nav.", ďalej musí to byť dokument ".docx". Ak kód bude začínať aj inak (napr. "\Doc.") alebo prípona môže byť napr aj ".doc", treba vzorec skomplikovať.

Napr takto
Sub Zapis()
Dim R As Long, RZ As Long, Z As Worksheet
Set Z = Worksheets("List1")
RZ = Z.Cells(Rows.Count, 12).End(xlUp).Row - 9
With Worksheets("List2")
R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(R, 1).Resize(RZ).Value = Z.Cells(10, 12).Resize(RZ).Value
.Cells(R, 2).Resize(RZ, 6).Value = Z.Cells(10, 14).Resize(RZ, 6).Value
End With
Z.Cells(10, 12).Resize(RZ, 9).ClearContents
End Sub

Pod prvým stĺpcom každej tabuľky nesmie byť nič iné, lebo sa používa na zistenie posledného zaplneného riadku.


Strana:  1 ... « předchozí  239 240 241 242 243 244 245 246 247   další » ... 289

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28