Stránka 1 z 1

VBA - zjištění zamčení listu

Napsal: 11 črc 2012 12:36
od VALL
Ahoj,

Hledám řešení, které zjistí, zda je definovaný list zamčen a vrátí např., hodnotu True nebo false.
Zatím se mě nedaří najít způsob,jak to napsat.

Re: VBA - zjištění zamčení listu

Napsal: 11 črc 2012 13:38
od cmuch
Nevím jak list, ale dalo by se podle buňky na listu.

Kód: Vybrat vše

zamek = Sheets("nazev").Range("A1").Locked

Re: VBA - zjištění zamčení listu

Napsal: 11 črc 2012 14:00
od VALL
Dík, ale není to ono. Sleduje to zda je v nabídce formát buňky - záložka zámek zaškrtlé políško "zámek". Tzn., bez ohledu na zamknutí listu, hlásí stav buňky.
Já v podstatě potřerbuji navázat následujícím makrem, reagující na stav zámku listu.

Kód: Vybrat vše

  If zamek = False Then
    Sheets("DS").Select
    Exit Sub
  End If

Re: VBA - zjištění zamčení listu

Napsal: 11 črc 2012 18:37
od cmuch
Tak asi takto.
Najít nějakou buňku do které se pokusit zapsat něco a podle toho jestli to je možné vyhodnotit v makru.
Nejlépe zapsat nic, to aby nebylo vidět pokud to půjde.

Kód: Vybrat vše

On Error Resume Next
    Sheets("nazev").Range("A1") = ""
   
    ' run-time-error
    If Err.Number = 1004 Then
   
        MsgBox "List zamknut!!"
    End If

Re: VBA - zjištění zamčení listu

Napsal: 12 črc 2012 07:58
od VALL
Ahoj,

díky, vyzkoušel jsem. Bohužel to funguje pouze v případě, když je list zamknutý. To je Ok. V případě, že je list odemknutý, stále to hlásí, že je list zamknut.
Tzn., v mém případě, musím znovu zadat heslo, což nechci, chci pouze list vybrat.

Re: VBA - zjištění zamčení listu

Napsal: 12 črc 2012 09:20
od cmuch
Nevím, ale mě to normálně jde jak na 2003 tak 2010,
list odemknut - hláška se nezobrazí
list zamknut - hláška se zobrazí

Kód: Vybrat vše

On Error Resume Next
    Sheets("nazev listu").Range("A1") = "zapis"
   
    ' run-time-error
    If Err.Number = 1004 Then
   
        MsgBox "List zamknut!!"
    End If

Re: VBA - zjištění zamčení listu

Napsal: 12 črc 2012 09:46
od VALL
Tak jsem našel rozdíl. Pokud je makro pro nový, čistý sešit tak to funguje skvěle. když ho vložím do mojeho sešitu, kde již jsou nějaké funkční objekty, tak nefunguje, viz můj poslední příspěvek.
Přikládám sešit. Jak funguje. Při jeho otevření se zobrazí hlavní stránka, kde vybírám co chci zobrazit. Když vyberu např., DS (tlačítko DS), pak se po zadání hesla zobrazí list DS a Csl. Stejné pro Tlačítko Csl.
Sešit je mnohem rozsáhlejší - trochu jsem ho pro přehlednost ořezal. Když se vrátím na list "Main" a znovu kliknu na tlačítko DS (list DS je již odemknut), znovu to po mě chce heslo. V tomto kód od Cmucha nezafunguje, vnímá list jako zamknutý.

Re: VBA - zjištění zamčení listu  Vyřešeno

Napsal: 12 črc 2012 11:26
od d1amond
Pokud jde jen o zjištění zda je uzamčen či nikoliv, potom

Kód: Vybrat vše

If ActiveSheet.ProtectContents = True Then
    MsgBox "Sešit uzamčen"
Else: MsgBox "Není uzamčen"
End If

Re: VBA - zjištění zamčení listu

Napsal: 12 črc 2012 12:05
od VALL
díky funguje skvěle.