< návrat zpět

MS Excel


Téma: Odemknout list a zamknout rss

Zaslal/a 10.1.2019 9:39

LugrDobrý den,

pokusil jsem se o Makro, ale už si nevím rady.
Potřeboval bych při stisknutí tlačítka odemknout list a při druhém stisknutí list zamknout s dotazem na heslo.

Přílohu je asi zbytečné přikládat, ale zkopíruji Makro.

Děkuji za radu.

Sub Zamknout_Odemknout()

Dim sPass As String
sPass = InputBox("Heslo k odemknutí listu:", "Uzamknout
list")
Dim wsSheet As Worksheet
Set wsSheet = Worksheets("List1")

If sPass = InputBox("Zadejte heslo ještě jednou:",
"Potvrdit heslo") Then
For Each sh In ActiveWorkbook.Sheets
wsSheet.Protect Password:=sPass
Next
Else

MsgBox ("Zadané heslo není správné!")
End If

' zde si nevím rady

sPass = InputBox("Heslo:", "Odemknout list")

For Each sh In ActiveWorkbook.Sheets
wsSheet.Unprotect Password:=sPass
Next

End Sub

Zaslat odpověď >

#042379
elninoslov
A prečo chcete nahrádzať natívnu funkcionalitu Excelu (Revízia - Zabezpečiť hárok) ?

Píšete o liste, ale v cykle zamykáte/odomykáte všetky listy zošitu. Tak ako to je ?citovat
#042380
Lugr
Asi to mám blbě, snažil jsem se to splácat, co jsem kde našel abych nemusel otravovat někoho z vás, ale bohužel. Jde mi jen o jeden konkrétní list. 8

Ale kdyby jste mi ukázal obě varianty, byl by jste moc laskav.

Předem děkujicitovat
#042381
elninoslov
Zatiaľ len na 1 list. Na všetky listy v zošite, je potreba myslieť ešte na výpis listov, ktoré sa odomknúť nepodarilo (pže užívateľ v odomknutom stave mohol zmeniť heslo manuálne)... Neviem, či na to budem mať večer čas. Zatiaľ toto...
Sub Zamknout_Odemknout()
Dim sPass As String

With wsData
If .ProtectContents Then
sPass = InputBox("Heslo k odemknutí listu:", "Odemknout list")
If sPass = "" Then MsgBox "Nebylo zadáno žádné heslo." & vbNewLine & "List nebyl odemčen.", vbExclamation: Exit Sub

On Error Resume Next
.Unprotect Password:=sPass
If Err.Number <> 0 Then
MsgBox "Zadané heslo není správné!" & vbNewLine & "List nebyl odemčen.", vbCritical: Exit Sub
Else
.Shapes("btnLock").OLEFormat.Object.Caption = "Zamknout"
End If
On Error GoTo 0

Else

sPass = InputBox("Heslo k zamknutí listu:", "Zamknout list")
If sPass = "" Then MsgBox "Nebylo zadáno žádné heslo." & vbNewLine & "List nebyl zamčen.", vbExclamation: Exit Sub

If sPass <> InputBox("Zadejte heslo ještě jednou:", "Potvrdit heslo") Then
MsgBox "Zadaná hesla se neshodují!" & vbNewLine & "List nebyl zamčen.", vbCritical: Exit Sub
Else
.Shapes("btnLock").OLEFormat.Object.Caption = "Odemknout"

On Error Resume Next
.Protect Password:=sPass
If Err.Number <> 0 Then
MsgBox "Při zamykání listu nastala chyba!" & vbNewLine & "List nebyl odemčen.", vbCritical, "Chyba": Exit Sub
.Shapes("btnLock").OLEFormat.Object.Caption = "Zamknout"
End If
On Error GoTo 0
End If
End If
End With
End Sub
Příloha: zip42381_lock-unlock-jednym-tlacitkom.zip (18kB, staženo 30x)
citovat
#042383
Lugr
Netušil jsem, že je to až tak moc složité. Mockrát děkuji za každou pomoc.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse