...2 vs 47 min...
@Seeberg-Radek
No predsa súbor Priečky.xlsm.
Tu je "nová" verzia s obomi možnosťami "vkladania" riadkov.
Máte pravdu, to activesheets som dopísal iba v noci, neskúšal... Rovnako som tam zabudol Module2 vymazať.
Posunúť celé Range ma napadlo ako prvé, a ani dnes netuším prečo som ho tam včera nedal, ale dal som Insert Row. S poliami inak pracujem rád :)
Ten SUM čo ste dal je parádny. Pôvodne som tam dal SUM(C:C), ktorý si s hlavičkou poradí, lenže započítava aj riadok 2 (nezapísaný len napísaný), možností je množstvo. Aj ten Váš vzorec dáva oblasť o 1 riadok väčšiu.
Je to jedno, ale len zo zaujímavosti tento vzorec
=SUM(INDEX(C:C;3):INDEX(C:C;IF(INDEX(C:C;2)="";IF(COUNTA(C:C)>1;COUNTA(C:C)+1;3);IF(COUNTA(C:C)=2;3;COUNTA(C:C)+1))))
nedá inú oblasť ako iba pod riadkom 2, iba presný počet riadkov, s tým že koriguje, aby nebol zarátaný riadok pod zaplnenou oblasťou, ani prípadný zapísaný 2 riadok (ale ešte nepotvrdený), a zároveň ak niesú data, odkazuje na prvý možný riadok, čiže 3. A riadky môžu byť aj mazané. Ale príde mi to komplikované
napr takto
Ešte miniúprava (a keď ja by som si nahradil Range za Cell). Skúste si dočasne vyradiť riadok ActiveWorkbook.RefreshAll a uvidíte, aký budete mať rozdiel.
A nepomohlo by pretiahnutie tých súborov z LAN k Vám na disk a aktualizovať data z disku? Ale to iba tápem...
Ešte by som to upravil na oveľa kratšiu verziu s menším počtom prestupov, ale práve som si uvedomil, že makro pomalé nieje. Pomalý bude ten ActiveWorkbook.RefreshAll
Ako píše, prepojených 5 súborov + KT.
Niekde sa tu už tuším povaľuje diskusia o optimalizovaní KT (to je mimo mňa).
Toto riešiť bez prílohy ... to je pre vešticu :)
Skúste takto nejak. Pokusy robiť zásadne na kópii súboru.
Ak nepoznáte mená listov/súborov z ktorých načítate data to je fuk, to rieši makro a nemá to s týmto nič spoločné.
Naopak musíte vedieť meno listu ktorý je použitý vo vzorci, a to :
za A ) ten list má názov odkazovaný priamo vo vzorci, a meno listu je nemenné a známe.
za B ) meno toho listu vo vzorci je menné, a je použité pomocou INDIRECT, ale stále musí tento INDIRECT vedieť kde je meno listu uložené.
Excel nemá vzorcové možnosti, ako zistiť neznáme meno iného listu. Ale lepšie by bolo, keby ste v tom makre vložili upravený vzorec s korektným názvom listu.
Všetko snáď objasní príloha.
Napr takto:
Tools - VBA Project Properties - Protection
Nie, nezabudol, je to hneď druhé slovo...
Pred maskou Vám chýba úvodzovka "
V_*_2015_02_S.txt"
"V_*_2015_02_S.txt"
Robí to len na Vašom PC ? Skúsil by som iné PC, podľa možnosti s 32-bit Excelom (Win môže byť 64). Dávnejšie som riešil problém so 64-bit Office, kde mi hrozne sekalo maticové prepočítavanie rozsahov do cca 150 ComboBoxov. A priamo MS uvádzal, že to je problém 64-bit verzie, ak sa jedná o ovládacie prvky ActiveX, a sám MS túto verziu na svojich stránkach neodporúčal. To len na margo.
Dôležité budú typy vzorcov. To by ste sem museli ten súbor dať, aby sa Vám na to odborníci pozreli, či sa nedajú vzorce optimalizovať.
Podľa mňa to funguje. Musel som si pomeniť trochu dátumy a ŠPZ, aby som navodil požadovanú situácie pre testovanie, pretože Vaše dáta to neumožnili.
Oranžovou farbou som označil tie, ktoré síce spĺňajú podmienku že obsahujú bobo alebo triolo, ale tie ktoré sú iné ako bobo alebo triolo nemajú väčší dátum, čiže nespĺňajú druhú podmienkuk, preto "NE" (a "NE" je vypísané iba na tých kde je bobo alebo triolo).
Zelenou farbou som Vám vyfarbil prípad, keď je rovnaká ŠPZ aj v bobo aj v inom a zároveň je ten iný väčší dátum, tak v tom riadku kde je bobo nastaví "ANO".
Takto som pochopil, že to chcete.
Opravujem sa, ospravedlňujem sa, nemusíte mať ten index v A. Môžete ho mať v ktoromkoľvek stĺpci, ale musíte použiť toto
v Exceli
=INDEX('Z:\[Zošit1.xlsx]Hárok1'!$A$2:$D$4;MATCH($A2;'Z:\[Zošit1.xlsx]Hárok1'!$E$2:$E$4;0);COLUMN(A1))
v Googli
=index(jedna!$A$2:$D$4;match($A2;jedna!$E$2:$E$4;0);column(A1))
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.