Proteger/Desproteger planilha mesmo botao

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)

2 Likes

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.

1 Like

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?