< 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 33x)
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

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje