< návrat zpět
MS Excel
Téma: Jak detekovat zamčený list
Zaslal/a Milan-158 8.11.2022 9:39
Ahoj, pro zjišťování zdali je daný list zamčený nebo ne (a podle toho např. nastavovat popis odemykacího/zamykacího tlačítka) jsem dosud postupoval takto:
If ActiveSheet.ProtectContents = True Then
Jenomže ve skutečnosti tím nezjišťuji, zdali je daný list zamčený, ale něco trošku jiného (viditelnost obsahu buňky v zadávacím řádku při zamčeném listě). A zrovna toto chování potřebuju změnit, takže musím se chytit něčeho jiného. Jak má ta podmínka správně znít? Dívám se do https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.protect, ale nenacházím to tam
Předem dík
Anonym(8.11.2022 13:47)#053794 https://stackoverflow.com/questions/51283005/how-check-if-excel-worksheet-is-protected
citovat
Milan-158(8.11.2022 14:09)#053795 Takže dle uvedeného linku je list zaručeně odemčen pokud platí všechny tři podmínky. Udělal jsem si na to funkci
Function ListZamcen(ws As Worksheet) As Boolean
With ws
If Not .ProtectContents And Not .ProtectDrawingObjects And Not .ProtectScenarios Then
ListZamcen = False
Else
ListZamcen = True
End If
End With
End Function
Předběžné testy hlásí, že to funguje. Díky
citovat
elninoslov(8.11.2022 19:10)#053796 If Then Else EndIf sú úplne zbytočné. Môžete to skrátiť
With ws
ListZamcen = .ProtectContents or .ProtectDrawingObjects or .ProtectScenarios
End With
Ale chválim, že niekto hľadá riešenie na svoj problém aj svojpomocne, a následne ho aj zverejní. To sa nestáva.
citovat