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

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod VALL » 11 črc 2012 12:36

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.

Reklama
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod cmuch » 11 črc 2012 13:38

Nevím jak list, ale dalo by se podle buňky na listu.

Kód: Vybrat vše

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

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod VALL » 11 črc 2012 14:00

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

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod cmuch » 11 črc 2012 18:37

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

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod VALL » 12 črc 2012 07:58

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.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod cmuch » 12 črc 2012 09:20

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

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod VALL » 12 črc 2012 09:46

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ý.
Přílohy
Udrzba_PrehledCidel_Kres.xls
Vzorový soubor k řešení
(122.5 KiB) Staženo 28 x

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod d1amond » 12 črc 2012 11:26

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
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod VALL » 12 črc 2012 12:05

díky funguje skvěle.


Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů