

Makro na zamknutí / odemknutí listů v Excelu
Ahoj,
mám v Excelu 2013 vytvořený dokument, který má cca 200 listů.
Všechny listy jsem potřeboval uzamknout proti úpravě, a abych nezamykal do zblbnutí každý list zvlášť, vytvořil jsem si makro pro zamknutí / odemknutí všech listů najednou. (např. podle tohoto návodu http://www.ozgrid.com/VBA/excel-worksheet-protect- all.htm)
Když ale provedu pomocí tohoto makra zámek všech listů, tak se provede standardní zamknutí - bez specifikace zámku (bez možnosti zvolení povolených akcí).
Chci se Vás prosím zeptat, zda se dá nějakým způsobem vložit do makra příkaz, aby se mi vždy po zadání hesla provedlo zamknutí, které umožňuje uživatelům navíc provádět akce, jako jsou např. "Formátovat řádky", "Upravit objekty", atd.
Moc Vám děkuji za radu.
Zaznamenaj si makro, ktorým ručne uzamkneš jeden z hárkov s Tebou nastavenými parametrami ochrany.
Potom si pozri, akým spôsobom sa tento úkon zapísal do záznamu makra a aplikuj to na svoje hromadne uzamykajúce makro.
Aplikované u Teba (vrátane argumentu "Heslo") to môže vyzerať napr takto:
WSheet.Protect Password:=TextBox1.Text, DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingRows:=True
Děkuji ti, moc jsi mi pomohl.
Již to funguje, tak jak má.
Jenom ještě doplním, že v případě příkazu pro provedení akce "Upravit objekty" je třeba zadat DrawingObjects:=False nikoliv True. Nevím, proč to zrovna u této akce funguje takto obráceně, ale po vyzkoušení mohu potvrdit, že tomu skutečně tak je.
Pro tento konkrétní případ by se tedy doplňovalo následující:
wSheet.Protect Password:=TextBox1.Text, DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFormattingRows:=True
Ještě jednou děkuji.
Neskúmal som Tvoju konkrétnu potrebu, hodil som to len ako príklad, s tým, že Ty si navolíš parametre podľa svojej potreby a čo Ti to dá, začleníš do svojho makra.
Hlavne že to máš