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

Ale ...
1) Barva písma - stejná jako pozadí
2) Formát buněk - Skrýt vzorce
3) Uzamkout s heslem

A nic není vidět
Třeba někdo ví o něčem profesionálnějším

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

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.