V předchozím dílu jsme se snažili ovládnout položku formuláře kvůli předanému požadavku od CIA -taktně zkoumat vztah uchazeče k náboženství. Použili jsme událost ComboBoxu Change a doplnili jsme uživatelskou funkci, zajišťující činnost. Zbývalo nám ošetřit počáteční stav, kdy není zvoleno nic, a zobrazování více voleb v políčku C30, pokud se nevejdou do dané šířky řádků. Rovněž jsme zatím neřešili případné chyby při zpracování.
Podkladová úloha: Pracujeme se sešitem, v němž je formulář, jejž je třeba vyplňovat. Posledně nás předseda klubu překvapil požadavkem, že CIA se obává infiltrace islámských teroristů do klubu. Požádali jej, aby součástí formuláře byly otázky nenápadně vyzvídající vztah uchazeče k náboženství. Stáhněte si sešit 2012-24 UD-funkce.xlsm z odkazu na konci článku. Sešit otevřete. Uvidíte zhruba toto:
Aby začalo fungovat tlačítko „Začít znovu s vyznačováním“, stačí si uvědomit, že se to řídí hodnotou buňky Suma_kodu_nabozenstvi na tajném listu. Ten tedy stačí vymazat:
Kdybychom místo ClearContents zvolili Clear, došlo by i ke smazání formátu, a v jeho rámci ke změně vlastnosti „Uzamčeno“ ze stavu NEPRAVDA na stav PRAVDA. Pokud bychom následně list zamkli, výše uvedený příkaz by při druhém použití skončil chybou pokusu o zápis do chráněné buňky.
Nyní zapojíme tuto rutinku na tlačítko:
My si teď zkontrolujeme, že výběrem několika náboženství a po stisku tohoto tlačítka se seznam smaže:
Výsledek stisku tlačítka je sice formálně správný, ale pozůstatek předchozí volby by mohl být matoucí. Chtěli bychom umět v makru nulujícím výběr nastavit v ComboBoxu položku „Náboženství“, které v makru přiřadíme hodnotu 0. Pokud to zkusíme ručně, vyjde chyba:
To vyřešíme zařazením pomocné proměnné:
Dim pom_kod As Variant.
Výsledek hledání zapíšeme…