Nie som už na mojom PC, tak len z mobilu...
Samozrejme, že to chybu napisať môže. Stačí vzorec obaliť do IFERROR() funkcie.
Samozrejme, že to ide makrom. Pozeral som na tie makrá. No, keď pridem, tak Vám to prerobím. Nemáte tam napr. dobrú kontrolu pri zmene na liste, ale hlavne Vám to pomocou Spinneru nefunguje preto, lebo Spinner nevyvolá udalosť zmeny listu. Napriek tomu, že mení prepojenú bunku. Treba mu priradiť makro, ktoré iba tú bunku znovu prepíše sebou.
Atď...
Príloha bola veľmi veľká, preto Vám ju nezobralo ani v ZIP. Treba prílohu vždy skrátiť pod 300 kb (neviem presný limit). Stačí odmazať tie tisíce riadkov.
Na takýto výpis to makro nepotrebujete. Stačí vzorec.
Veď to môžete urobiť vzorcom VLOOKUP alebo MATCH+INDEX.
Hoďte nejakú prílohu do toho ZIP-u.
Pridaním dvoch podmienok ľahko zabránite takémuto zlyhaniu.
EDIT 25.7.2023 14:49
Urobil som ešte jednu podmienku, aby sa to vysporiadalo so všetkým, čo ma napadlo, ako ste to mohol myslieť s tými prázdnymi riadkami.
@Milan-158: Ak dám Súbor - Otvoriť - Ako tabuľka XML - OK na hlášku o schéme, tak mi otvorí (porozbaľuje subTables), a môžem si zmeniť aj uložiť čo chcem. Vytvorí sa na ten súbor XML prepojenie, ktoré môžem odstrániť.
Aký požadujete výsledok?
Čo znamená "odkáže na řádek kde je počet jmen" ? Ktorý riadok z tých 4-och, na ktorých sa používa premenná PocetMien, máte na mysli?
Snáď nie tento?
V(PocetMien + 2, x) = D(i, 5) / (D(i, 4) - D(i, 3) + 1)
Lebo tam to spadne vtedy, ak zadáte ako píšete nové meno. Iba meno. Bez dát, s ktorými makro samozrejme počíta, že nasledujú.
O365 a O2021 ju majú. Ja ju nemám, ale zápis v správcovi by mohol byť asi
=FILTER($B$3:$B$200;$B$3:$B$200<>"")
Áno písal som to natvrdo. Iba som postupne vyďobával v každej Table jej subTable (v danom riadku - väčšinou {0} a v danom [stĺpci]), až som sa dostal k dátam. Iba som to zreťazil.
Asi by to šlo aj inak, napr. načítať to ako text a parsovať (rozdeliť podľa značiek), alebo má na to možno PQ aj origo fičurku na výcuc dát podľa značky, ale to nepoznám.
Ak máte novší Excel skúste použiť funkciu FILTER
Pokus
Tam som použil myslím príkaz Table.Combine, ktorý spôsobí spojenie Tabuliek pod seba s tým, že sa "zlícujú" rovnako nazvané stĺpce. A na to treba tú predprípravu názvov, ktorú Vám ale ťažko urobíme bez vzorového súboru. V Poznámkovom bloku ak si otvoríte ten XML, mohli by ste sa v ňom vyznať natoľko, aby ste vyrobil vymyslené 2 riadky dát. Nejde nám samozrejme o dáta, ale o štruktúru. Potom by bodol manuálne vyrobený požadovaný výsledok z tých 2 vymyslených riadkov dát. A snáď sa nám to poddá :)
Napr. takto?
Ten Kod sa môže v spodnej tabuľke aj opakovať?
Kod je číslo alebo znakočíslo?
Hore vypísať iba prvých 5?
Všetko píšem teraz len z brucha, bez skúšania.
"...Můj kód házel chybu..."
Myslíte ktorý?
Ten prvý práveže vyzerá priechodne...
Ten druhý hodí chybu:
-za 1. lebo je tam EN vzorec aj EN oddeľovač parametrov,
-za 2. lebo to, čo by vrátil "With" (ak by tam bol lokáln vzorec) je už FormatConditions, teda nemôžete vo FormatConditions hľadať ešte .Selection.FormatConditions(1).Interior. Daný objekt takú vlastnosť nemá.
To čo chcete dosiahnuť, teda zafarbiť všetky bunky v I:AV, ak v $I$1>$AV$1 je víkend, je práve najlepšie urobiť pomocou PF.
Druhá možnosť, sledovať makrom zmenu v bunkách $I$1>$AV$1, a vykonať manuálne vyfarbenie buniek, mi príde ako úplná zbytočnosť.
Takže tá funkcia si má vo VBA prečítať posledný list v poradí? Lebo takú funkcionalitu Excel inak nemá.
Alebo sú tie listy nazývané nejakým pravidlom? Napr. DD.MM.YYYY? Potom sa dá aj cez INDIRECT/NEPŘÍMÝ.ODKAZ vzorcom.
Samotné určenie času potom riešiť podmienkou IF/KDYŽ (v závislosti na predchádzajúcej odpovedi prípadne matica), ale Vy ste nenapísal jediné vodítko, ktorým smerom sa ubrať. Doplňte.
EDIT: Tu máte niektoré z príkladov, ako sa dá Váš dotaz vyložiť. Rôzne.
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.