
@AL
Když jsem začínal s VBA (to byl asi ještě E2000), taxem taky zkoušel podobnou úlohu (tedy public proměnná na úrovni modulu), ale pamatuji se, že mi tenkrát excel vyhazoval chybovou hlášku nebo nepracoval spolehlivě. Po zkoumání jsem zjistil, že "zapomíná" hodnotu proměnné (vaše MyLockedRange). Teď myslím, pokud se jedná odlohodobější otevření sešitu - v řádu hodin. Od té doby mu jaxi nevěřím a používám buď pojmenovaných oblastí (což má nevýhodu přepočtu) nebo jiných postupů. Používáte toto řešení a jaké máte zkušenosti?
A technická - On Error Resume Next - v tomto případě zbytečné až nebezpečné - Range má vždycky rodiče na úrovni listu a pokud bude špatně zadané heslo, tak to uživatele neupozorní a nebude vědět, kde je chyba. Jestli smím: Vždy používejte On Error Resume Next s kombinací On Error GoTo X (nejlépe 0) a ošetřujte jen ten kousek kódu, kde to chcete použít (klidně několikrát v jedom kódu, ale vždy znovu zapněte).citovat
Když jsem začínal s VBA (to byl asi ještě E2000), taxem taky zkoušel podobnou úlohu (tedy public proměnná na úrovni modulu), ale pamatuji se, že mi tenkrát excel vyhazoval chybovou hlášku nebo nepracoval spolehlivě. Po zkoumání jsem zjistil, že "zapomíná" hodnotu proměnné (vaše MyLockedRange). Teď myslím, pokud se jedná odlohodobější otevření sešitu - v řádu hodin. Od té doby mu jaxi nevěřím a používám buď pojmenovaných oblastí (což má nevýhodu přepočtu) nebo jiných postupů. Používáte toto řešení a jaké máte zkušenosti?
A technická - On Error Resume Next - v tomto případě zbytečné až nebezpečné - Range má vždycky rodiče na úrovni listu a pokud bude špatně zadané heslo, tak to uživatele neupozorní a nebude vědět, kde je chyba. Jestli smím: Vždy používejte On Error Resume Next s kombinací On Error GoTo X (nejlépe 0) a ošetřujte jen ten kousek kódu, kde to chcete použít (klidně několikrát v jedom kódu, ale vždy znovu zapněte).citovat