Opakuje se stejná otázka, na kterou je stále jediná odpověď. Neexistuje rozumná možnost, jak testovat barvu buňky z podmíněného formátování. Jediná rozumná možnost je použít stejnou podmínku, která je použitá pro podmíněné formátování také pro objekt, který se má chovat ve shodě s naformátovanou buňkou. Doufám, že jsem to napsal srozumitelně.
Doporučuji nastudovat práci s operátorem Like, který poskytuje pro úlohy podobného typu velmi účinnou volbou testu.
Bez vyhledávacích funkcí si lze jen obtížně představit inteligentní využití práce s daty v Excelu. Před pár lety jsem napsal animovaný návod pro práci s touto kategorií funkcí. Dávám ji do přílohy,
Vracím se k tématu s tím, že jsem svůj původní algoritmus revize vzorců v buňkách doplnil o prohlídku vzorců v názvech, grafech a kontingenčních tabulkách s následnou lokalizací vzorců. V případě externích odkazů ve vzorcích pro ověření dat a pro podmíněné formáty se ukázalo, že se takové odkazy deformují tak významně, že jejich automatickou lokalizaci nelze realizovat. Na zjištěné případy reaguje prověrka pouze varovnými zprávami.
Proceduru pro indikaci externích linků v prověřovaném sešitě jsem plně převzal z příspěvku od xlnc. Tato procedura linky hledá, aniž by se je pokoušela nějak modifikovat.
Inovovaný nástroj LokalizaceVzorcuX je vybavený nemodálním formulářem s voláním obou možných prověrek. Je napsaný tak, aby mohl být použit jako běžný doplněk.
Obecně platí, že Dim Sesit vytvoří "pouzdro" pro objekt, který definujeme pomocí As, např. Dim Sesit as Workbook. Proměnnou Sesit pak můžeme naplnit objektem typu Workbook. Zatím ale je objektová proměnná Sesit prázdná (Sesit is Nothing). Teprve příkaz Set tuto proměnnou naplní potřebným obsahem, např. Set Sesit = ThisWorkbook. Od té chvíle, pokud oslovíme proměnnou Sesit, oslovujeme tím objekt ThisWorkbook.
Pomalu si zvykám, ale to, že o příspěvek bez náhrady přijdu, když se místnímu systému např. nelíbí příloha, je opravdu nepovedené. Doporučení na preventivní uschování mi připadne, jako kdybych před požitím oběda v hospodě měl vždycky napřed a pro sichr požít protijed.
xlnc napsal/a:
Barva pozadí buňky je zrádná věc, barva písma, ať už udělaná jakkoliv, je ovšem OČIVIDNÁ pitomost.
Znám velmi málo případů, kdy někdo používá barevné formátování buněk. Váš požadavek splní číselný formát (Číselný formát / Vlastní)
[Zelená][=1]"OK";[Červená]"NE"
Možná by to šlo ještě jednodušeji: tabulku první+druhá jsem šoupnul do schránky, kurzor nastavil na levý horní roh cílové oblasti a v menu "Vložit jinak" jsem vybral současně možnosti "hodnoty" a "transponovat". Já jsem tím způsobem získal to, co jsem očekával. Problém je jenom v tom, že zdrojové buňky neobsahují celá čísla, takže transponovaná tabulka vypadá formálně blbě. To ale spraví vhodné naformátování (nebo lépe úprava zdrojových tabulek).
Jestli jsou obě data v řádku umístěna do jedné buňky (a vypadá to tak, že ano), pak mám pro tazatele doporučení, aby se místo Excelu věnoval nějaké jednodušší práci. Složitá řešení hloupých zadání jsou jen na škodu věci.
Doporučení od xlnc asi povede na shánění a registraci potřebného prvku Active X. Jestli nemáte bohatší Excel než já, bude vám ten prvek zřejmě taky chybět.
Nabízím jinou možnost. Před lety jsem se nechal inspirovat a napsal jsem vlastní kalendář na bázi formuláře. Jedna z jeho variant byla určena pro rozšíření formuláře o další prvky. Pokud byste pokládal za rozumné můj formulář doplnit o své vlastní prvky, může to pro vás být řešení.
xlnc napsal/a:
Pár tipů na okraj:
a) Pracujte s poli (zde není asi větší důvod)
b) Rychlejší než metoda Copy (která zas.. schránku) je prostý odkaz z cílové oblasti do zdrojové, tj. cíl = zdroj
Znám ten problém a proč se to tak chová, jsem taky nezjistil. Všechno se v tom směru zjednoduší při práci s tabulkou (ListObject), kde se automaticky doplní nejen formátování, ale dokonce i vzorce, pokud se tam mají nacházet. Tabulky jsou uživatelsky přívětivé, ale mají i svá omezení. Navíc např. Sort pro tabulku má úplně jinou syntaxi ve VBA než obyčejná oblast buněk. Každá sranda něco stojí...
Přece jenom jsem se zamyslel nad tím, jestli bych nedokázal rozšířit záběr nástroje na další objekty při odstraňování vzdálených propojení. Ze svých snah jsem dopředu vyloučil externí linky pro grafické a další objekty. Soustředil jsem se na ty vlastnosti, které připouštějí existenci vzorců ve svém obsahu. Z tohoto výběru jsem se nakonec rozhodl řešit otázku vzdálených odkazů pro následující objekty:
buňky na listech; názvy listu i sešitu; ověření; podmíněné formáty; série v samostatných i zabudovaných grafech; pole v KT.
Vznikl mi ovšem hloupý problém: nemám k dispozici sešity s nechtěným propojením pro většinu z vyjmenovaných případů. Nemohu proto ověřit, jestli napsané rutiny opravdu dělají to, co od nich požaduji. Obracím se proto na ty, kteří mají k dispozici sešity s nechtěným propojením, jestli by nebyli ochotni zaslat některé z nich na mou adresu. Já bych získal materiál k testování a vy byste v příznivém případě dostali zpět "uzdravené" sešity. Pokud bude můj testovací proces zdárně ukončen, jsem rozhodnutý nástroj uvolnit pro obecné použití.
Pokud můj první algoritmus počítal pomalu, pak nabízím rychlejší, včetně měření času, abychom se nemuseli dohadovat, co je pomalu, a co rychle. Při nastavení N=20000 celá ta legrace u mne trvala 0,78 sec, pro zadaných 185 záznamů 0,03 sec. Mně to pomalu nepřipadne.
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.