Olá! criei uma planilha para registrar algumas informaçãoes e com isso gostaria de uma macro que ao clicar num unico botao ou numa unica figura desprotegesse ou protegesse a planilha que esta sendo usada.
Ola @IndioRiko , segue sugestão de Macro usando uma célula de chave de controle (A1) , se 1 esta Protegido se 0 Desprotegido.
Sub ProtegerDesproteger
Dim oData As Variant
oData = ThisComponent.getSheets.getByName( "Planilha1" ).getCellRangeByName( "A1" ).getDataArray()
xVar1 = oData(0)(0)
Select Case xVar1
Case 0 :
ThisComponent.CurrentController.ActiveSheet.getCellRangeByName( "A1" ).Value = 1
ThisComponent.getCurrentController.getActiveSheet().Protect( oSenha )
Case 1 : ThisComponent.getCurrentController.getActiveSheet().Unprotect( oSenha )
ThisComponent.getCurrentController.getActiveSheet().Unprotect( oSenha )
ThisComponent.CurrentController.ActiveSheet.getCellRangeByName( "A1" ).Value = 0
Case Else : MsgBox "Error", 0, "ActiveSheetProtection"
End select
End Sub
Segue arquivo exemplo.
IndioRiko.ods (10.9 KB)
Complemento
Arquivo com pedido de Senha. ( ndrk )
Para o usuário não ter acesso a senha cadastrada na Macro, a Biblioteca Senha esta também com Senha ( ndrk )
IndioRiko_v2.ods (14.1 KB)
Parabéns mais uma vez pelo conhecimento compartilhado. Minha intenção é solicitar a senha ao proteger/desproteger a planilha. Há essa possibilidade.
Vide Complemento na resposta acima.
Olá @schiavinatto! A solução foi perfeita até o momento em que surgiu um erro inesperado quando eu simplesmente deixei em branco o campo de senha e então o Calc abre a janela de edição de macros e assim a senha fica visivel como na imagem anexada. Preciso tratar/validar o campo de senha em branco para que apenas mostre a mensagem que o campo de senha esteja em branco. Poderia me ajudar?