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

Jste zde: Úvodní stránka » excel » vba-soubory » zobrazeni-listu-po-zadani-hesla-excel

Zobrazení listu po zadání hesla - Excel VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Jak zobrazovat vybraný list na základě zadání hesla?

Úvodem do zabezpečení

Pozor, zabezpečení Microsoft Excelu není dokonalé. Kdo trochu Excel zvládá, zobrazí si bez problému všechny listy (ač máte nastaveno zabezpečení maker). Jak na to? Stačí použít google ... osobně neposkytuji rady jak zabezpečení obejít. Jen upozorňuji, že zabezpečení Excel je slabé.

V článku postupně ukáži jak zobrazit listy na základě zadání hesla.

Předpokládám znalost jak funguje xlSheetVeryHiden u listu. Pokud si nejste jisti, doporučuji článek: Jak využít skrytí listu - xlSheetVeryHiden, kde se dozvíte více (tj. list se nezobrazí v přehledu jako skrytý, vidíte ho jen ve VBA).

K dispozici tyto příklady:

  • Příklad 1 - zobraz na základě hesla
  • Příklad 2 - už zobrazení souboru je heslované
  • Příklad 3 - možnost opětovné zobrazení dialogového okna pro heslo

Příklad 1

Po spuštění sešitu se zobrazí dialogové okno, které čeká na zadání hesla. Po zadání správného hesla se zobrazí příslušný list. Po zadání špatného hesla se zobrazí informace o špatném hesle.

Excel přistup na list na heslo

Tento sešit obsahuje VBA kódy a není zaheslován (zobrazíte si bez hesla VBA kód), ať si bez problému prohlídnete i zdrojové kódy.

Jak na to? Do ThisWorkbook zadejte tyto kódy:

Po zavření sešitu se provede:

Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim List As Worksheet, Sesit As Workbook For Each List In ActiveWorkbook.Worksheets If List.Name <> "List1" Then List.Visible = xlSheetVeryHidden Next List ' ulozit ActiveWorkbook.Save End Sub

Po otevření sešitu se provede

Private Sub Workbook_Open() Dim List As Worksheet, Sesit As Workbook Dim Heslo As String For Each List In ActiveWorkbook.Worksheets If List.Name <> "List1" Then List.Visible = xlSheetVeryHidden Next List Heslo = Application.InputBox("Zadej heslo pro pristup. Dle hesla se zobrazí příslušný list.", , , , , , , 2) Select Case Heslo Case "123" Worksheets("list2").Visible = True Case "456" Worksheets("list3").Visible = True Case Else MsgBox "Špatné heslo." End Select End Sub

Jen připomínám, sešit se musí uložit s podporou maker.

Ke stažení zdarma

Soubor Zobrazení listu na heslo - Excel soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra, testován Excel 2007 a Excel 2010.

Poznámka: Hesla jsou uvedena na prvním listě. Pro zobrazení List2 je to heslo "123" a pro List3 heslo "456". Minimálně jeden list musí být viditelný, v tomto sešitě jde o List1.

Příklad 2

Jedná se o předchozí příklad, který je uložen pod heslem stejně jako vstup do VBA. Heslo je 0000, (0000 - je prý nejčastěji používané heslo ;-) tak ať vám ušetřím práci, dobře se pamatuje ;).

Zaheslováni VBA.

V Editoru VBA menu Tools - VBAProject Properties - Protection záložka Protection a zaškrtnout Lock project a vyplnit a potvrdit heslo tj. 0000.

Heslo pro otevření

Menu Soubor - uložit jako vybrat Nástroje - Obecné možnosti z zadat heslo pro otevření v máme případě opět 0000. Můžete si zvolit své heslo, jiné, lepší :)

Poznámka: Existují postupy jak hesla v EXCEL obejít.

Ke stažení zdarma

Soubor Zobrazení listu na heslo 0000 - MS Excel soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra, testován Excel 2007 a Excel 2010. Heslo pro přístup je 0000.

Své sešity v Excelu nezamykám, ale zde jde o ukázku, proto výjimečně je tento sešit zamčen ;) heslo je 0000 jak jsme už uvedl výše.

Příklad 3

Sešit je doplněn o tlačítko, které opětovně zobrazí dialogové okno pro zadání hesla.

Ke stažení zdarma

Soubor Zobrazení listu na heslo 0000 - Excel soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra, testován Excel 2007 a Excel 2010. Heslo pro otevření souboru je 0000.

Další doplňky

Jak lze dále doplňovat.

Následující soubory jsou odemknuty, bez hesel VBA a pro uložení. Pro praktické použití musíte ještě zaheslovat podle příkladu 2.

Zobrazovat všechny listy

Například když oprávněná osoba (šéf) bude chtít vidět všechny listy.

For Each List In ActiveWorkbook.Worksheets If List.Name <> "List1" Then List.Visible = True Next List

Speciální list s hesly a jmény

Každá osoba bude mít list se svým jménem a svým heslem. Tj. musí se zadat obě položky.

Možnost měnit heslo

Možnost změnit své heslo.

Závěrem

Na dotazy typu: Jak zjistit heslo? Jak obejít ochranu? Nezodpovídám, musíte využít google, který pomůže najít weby s těmito návody. Pokud své listy a sešity zabezpečujete jinak, můžete se zmínit v komentářích.

Článek byl aktualizován: 19.09.2020 11:07

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 - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

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


Komentáře


Marianus

Přidáno: 22.07.14 14:48

... Ahoj slabost ochrany excely je mi znama, ako je tma ochrana VB sciptu ? ...






Excel


Sdílejte

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

Nové články


Reklama


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 - 2024 |