Stránka 1 z 1

Excel a zamknutí listu.

Napsal: 01 črc 2007 18:27
od nuggett
Ahoj, mám v excelu několik listů a potřeboval bych jen jeden uzamknout tak, aby nebyl viděn jeho obsah dokud se nezadá heslo. Jde to vůbec? Zkoušel jsem to různě uzamykat ale i když se nejde dostat do buňky, pořád je ale vidět obsah listu a to nechci. Moc děkuji za rady.

Napsal: 01 črc 2007 18:47
od Koja
Třeba to de aj nějak jinak - efektivněji - ale nic mě nenapadlo, když sem to zkoušel :lol: Ale ...
1) Barva písma - stejná jako pozadí
2) Formát buněk - Skrýt vzorce
3) Uzamkout s heslem
:lol: A nic není vidět :lol:
Třeba někdo ví o něčem profesionálnějším :idea:

Napsal: 01 črc 2007 23:05
od mikel
1. Přepneš se na ten list, co chceš schovat a vybereš Formát/List/Skrýt. Tím ten list skryješ a zobrazíš ho zase přes Formát/List/Zobrazit a vybereš ho ze seznamu všech skrytých listů.
2. Zamkneš sešit přes Nástroje/Zámek/Zamknout sešit (můžeš použít heslo) a je to. Odemknutí provedeš stejně, jen tam místo nabídky Zamknout sešit bude Odemknout sešit.

Napsal: 01 črc 2007 23:58
od nuggett
mikel: moc děkuju ale asi to neřeší to, čeho bych chtěl dosáhnou. A tím je, aby ten list byl viditelný pro všechny ale měl skrytý( a zaheslovaný) obsah takže jakmile se na list klikne, tak Excel vyzve ke vložení hesla. Po jeho napsání by se ten obsah listu objevil a mohlo se s ním dělat cokoli. Víš taková jakoby pojistka proti cizím :lol: To co radí Koja je moc dobrý, ale zdlouhavě by se to někomu kdo s excelem třeba neumí popisovalo.

Napsal: 02 črc 2007 09:48
od franticek
Možná jedině pomocí makra - vytvoř si button na listu a po kliku bude chtít heslo - po zadání změní vlastnost listu visible na true, nezapomeň zaheslovat i to makro.

Makro

Napsal: 30 črc 2007 02:00
od Pavel123
Co třeba takhle:

Option Explicit 'Vyžadovat deklarace
Dim flag As Boolean 'Příznak pro zpracování události

Private Sub Worksheet_Activate()
'Jestliže probíhá zpracování požadavku na heslo nespouštět znovu událostní proceduru
If flag Then Exit Sub
Call Overit_Heslo
End Sub

Private Sub Overit_Heslo()
'Deklarace

Btw. Nevite nekdo jak odsadit začátek řádku? Ruší mi to mezery na začátku řádku.
Dim Heslo As String
Dim str As String
Dim Protected As String
'Inicializace
Protected = "Heslo" 'Zde zadej název chráněného listu
Heslo = "Ahoj" 'Zde zadej svoje heslo
'Zakázat zpracování Private Sub Worksheet_Activate()
flag = True
'Skrytí aplikace. Jinak by pod požadavkem na heslo byl ten list vidět
Application.Visible = False
'Zadání hesla
str = InputBox("Zadej heslo")
'Ověření hesla. Pokud je správné zobrazí Protected list
'jinak zobrazí první list.

If str = Heslo Then
Sheets(Protected).Activate
Else
Sheets(1).Activate
End If
'Zobrazení aplikace Application.Visible = True
'Povolit zpracování Private Sub Worksheet_Activate() flag = False

End Sub

Procedury je třeba vložit v projektu (Alt+F11) do listu co má být chráněn. Nesmí to být první list.