Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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.

Předmět Autor Datum
Zaznamenaj si makro, ktorým ručne uzamkneš jeden z hárkov s Tebou nastavenými parametrami ochrany. P…
robert13 11.11.2016 09:19
robert13
Děkuji ti, moc jsi mi pomohl. :-) Již to funguje, tak jak má. Jenom ještě doplním, že v případě př…
Kulihrášek 11.11.2016 13:26
Kulihrášek
Neskúmal som Tvoju konkrétnu potrebu, hodil som to len ako príklad, s tým, že Ty si navolíš parametr… poslední
robert13 11.11.2016 14:28
robert13

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.

Zpět do poradny Odpovědět na původní otázku Nahoru