Přeskočit navigaci | Přeskočit na novinky

Nový videokurz na Seduo: Excel pro začátečníky

     

Jste zde: Úvodní stránka » excel » vba-listy-bunky » zamykani-odemykani-protect-unprotect-excel-vba

Zamykání/odemykání buněk - Protect/Unprotect - Excel VBA


Jak pomocí VBA Excel zamykat (Protect) a odemykat (Unprotect) buňky.

Úvodem o zamykání buněk pomocí VBA v Excelu

Ochrana (Protection) buněk je vhodná, nemusí jít ani o požadavek, aby Vám někdo neodhalil Vaše funkce a vzorce, ale pouze o to ať si své vzroce nepřepíšete. Elegantně jde toto vyřešit pomocí zamykání. Jak na zamykání ve VBA je sepsáno v tomto článku.

Upozornění: Heslo v Excel není úplně bezpečné, stačí mít trochu znalosti (případně si stáhnout příslušný software) a heslo překonate. Proto berte tuto ochranu jako základní, aby pro nepřepsání si důležitých údajů. Uchovávat v tom finanční přehledy firmy zabezpečené pouze heslem nedoporučuji. Raději tento soubor zašifrujte profsionálním nástrojem. A hlavně když už používate heslo tak jej nezapomenout...

Odemknout - změnit - zamknout

Nezapomenout: V 19. století se zamykalo! - Hláška z návštěvníku.

Nejčastější a nejednoduší úloha. Sešit je zamknut a mi pomocí VBA potřebujeme změnit zamknoutou buňku. Jak na to? Odemknout, změnit a nezapomenout zamknout.

Odemknout

Předpokládám, že heslo znáte. Pokud hledáte jak obejít heslo musíte se zeptat strýčka googla.

ThisWorkbook.Worksheets("List1").Unprotect Password:="Heslo"

Změnit

Něco změníme. Třeba v buňce A1.

ThisWorkbook.ActiveSheet.Range("A1").FormulaR1C1 = "Provedena změna :)"

Zamknout

Tak a list opět ochraníme.

ThisWorkbook.Worksheets("List").Protect Password:="Heslo"

Je list chráněn?

Zjištění, zda je list je chráněn.

If ActiveSheet.ProtectContents = True Then MsgBox "List chráněn. :(" Else MsgBox "List nechráněn. :)" End If

Závěrem

Bude-li zájem o další VBA kódy týkající se zamykaní buněk, pokusím se je zodpovědět v komentářích či doplnit tento článek. Zajímavá témata jsou:

  • možnosti ochran listu - Excel nabízí mnoho nastavení - jak je aplikovat
  • aktuální stav ochrany listu
  • nastavení ochrany listu
  • změna ochrany listu
  • buňky bez ochrany - nastavení oblastí
  • atd. - jen z tématu okolo ochrany listu, by se dala napsat diplomka :)

Článek byl aktualizován: 01.11.2014 14:19

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



Komentáře


kosokrychlov

Přidáno: 12.12.13 15:14

Zdravim, prosím o radu. Zamčený list - při spuštění makra na začátku odemkne, provede se zadaný kod, list zase zamkne. Funguje správně, ale při sdílení sešitu není možné odemknout/zamknout list. Existuje na to nějaké řešení? Bylo by například možné při sdílení sešit nechat zamčený a nastavit "Povolit uživatelům úpravy oblastí" s heslem? Pokud ano jak by se to zapisovalo ve VBA. Díky za odpověď

Tomáš

Přidáno: 16.06.14 12:50

Zdravím, mám dotaz k zamykání. Mám makro, kde jeden z produktů jsou grafy, po proběhnutí makra všechno zamknu, a tady vznikne problém - graf nelze označit, aby šel samostatně vytisknout. A naopak, když jej nechám odemčený, tak pak je možné, aby ho uživatel smazal, a tomu chci zabránit. Napadá Tě nějaké řešení?

Ivana

Přidáno: 10.07.14 15:35

Dobrý den, Bojuji se zamykáním buněk. Správně vyberu ty, které nechci zamknout a pak celý list zamknu. Vše funguje OK do doby, než potřebuji použít filtry na daném listě. Umíte mi poradit? Díky

Stoupa

Přidáno: 22.08.14 06:37

Zdravím vespolek, řeším něco podobného a prozatím zcela bez úspěchu :( mám xls soubor, v něm 30 listů, spousta vzorečků, takže je nasnadě je uzamknout. Občas ale doplňuji data, takže jsem potřeboval vytvořit ve VBA, hromadné uzamčení/oemknutí listů. S tím jsem si poradil (formou tlačítka v listu, nebo vyvoláním pole za pomoci klávesové zkratky). Mám ale "těžký" :) problém: potřebuji zpřístupnit komentáře (klasickým uzamčením se jednoduše zaškrtne volba "Upravit Objekty"), ale ve VBA vůbec nemůžu narazit na ten správný parametr (DrawingObjects:=True, AllowFormattingRows:=True, etc...) Lidé dobří, věděl by někdo ... ? S tím souvisí možná už "vyšší dívčí" - pokud se totiž povolí objekty, tak lze manipulovat s vytvořenými tlačítky -> karta "Vývojář"-"Režim návrhu" :( Lze toto nějak obejít ? A nakonec něco pro Ivanu, ale nevím, jestli jsem přesně pochopil problém. Po uzamčení není filtr funkční ? No v rychlosti jsem zkusil pro tlačítko něco spáchat (odemyká/zamyká všechny listy najednou): za hodnotou "list.Protect Password:=heslo" jsou všechny mě známé parametry, jen právě ty objekty nevím :( Private Sub CommandButton1_Click() Dim list As Worksheet heslo = InputBox("Zadej heslo", "ZÁMEK") For Each list In Worksheets If list.ProtectContents = True Then list.Unprotect Password:=heslo Else list.Protect Password:=heslo, DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True End If Next list End Sub

Stoupa

Přidáno: 22.08.14 12:43

Dodatek k předchozímu ... takže pro povolení filtrů je ten správný parametr: AllowFiltering:=True pro úplnost ;) kód pro klávesové zkratky Private Sub CommandButton2_Click() Dim list As Worksheet For Each list In Worksheets If list.ProtectContents = True Then list.Unprotect Password:=TextBox1.Text Else list.Protect Password:=TextBox1.Text, DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True End If Next list Unload Me End Sub vybrat Insert>UserForm - zobrazí se Toolbox vybrat View>Toobox - zadat Label, CommandButton, TextBox viditelný popis (název) prvků je v Properties vždy kolonka Caption - v Properties pro TextBox najít pole PasswordChar a zadat * (jinak se heslo bude zadávat viditelně) vybrat Insert>Module a zadat: Sub ShowPass() UserForm1.Show End Sub vybrat Vývojář-Makra (nebo ALT+F8) a zvolit si vyvolávací zkratku (používám Ctrl+Shift+M) výsledek stejný jako u tlačítka

Bara

Přidáno: 04.06.15 14:36

dobrý den, potřebuji poradit. mam v tabulku se vzorci. Mam okruh lidi, kteri maji pouze nahled.(zamknu list), ale mam i okruh lidi kteri potrebuji do urcitych casti zapisovat. V pripade ze jim odemknu list (musi byt zamcen kvuli prvnimu okruhu lidi)tak se mi zaroven odemknout i me bunky a casto se stava ze mi prepisi co nemaji. Takze zkracene potrebuji v prvnim okruhu zamknout cely list a po odemceni potrebuji mit jeste zamcene urcite bunky. děkuji za pomoc


Přidání nového komentáře

Poznámka: Z časových důvodu není v mých sílách zodpovědět všechny dotazy. Děkuji za pochopení.




(vlož číslo padesátpět)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky, kromě <code> a </code> (pro vkládání VBA kódu). Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu. V komentářích si tykáme. ;-)






Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2016 | 19360

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.