Caixa de dialogo: Proteger planilha

Ola! Eu de novo!

Gravei uma macro para proteger minha planilha. Usei dois botões: um para proteger a planilha e outro para desproteger (para os botões, usei a opção "atribuir uma macro). O botão de “Desproteger” ficou bom, porém o botão de “Proteger” não ficou legal. Sempre que clico para proteger, aparece a caixa de dialogo “Proteger planilha” . Eu queria que não aparecesse. Gravei a macro de todas as formas, mas não deu certo!

Ola @mlmacatto, tenho estas duas macros…


'' Proteção de Planilha = Sub SheetProtection ( oSheet$, oSenha$, onoff$ )
Sub SheetProtection ( oSheet$, oSenha$, onoff$ )
	Select Case onoff
		Case "on" : 	ThisComponent.Sheets.getByName( oSheet ).Protect( oSenha )
		Case "off" : 	ThisComponent.Sheets.getByName( oSheet ).Unprotect( oSenha )
		Case Else : 	MsgBox "Error", 0, "SheetProtection"
	End select
End Sub 

'' Proteção de Planilha ativa = Sub ActiveSheetProtection ( oSenha$, onoff$ )
Sub ActiveSheetProtection ( oSenha$, onoff$ )
	Select Case onoff
		Case "on" : 	ThisComponent.getCurrentController.getActiveSheet().Protect( oSenha )
		Case "off" : 	ThisComponent.getCurrentController.getActiveSheet().Unprotect( oSenha )
		Case Else : 	MsgBox "Error", 0, "ActiveSheetProtection"
	End select
End Sub

EXEMPLO de uso:

Sub ProtegerPlanAtiva
      ActiveSheetProtection "Senhaa", "on"
End Sub
Sub DesprotegerPlanAtiva
      ActiveSheetProtection "Senhaa", "off"
End Sub

Observação, Caso queira dificultar a descoberta da senha, cria no arquivo, uma Biblioteca diferente da Standard, assim poderá por senha na Biblioteca também.

Ola, Você pode usar um botão para colocar e tirar o protetor

Sub ProtectOnOff()
oDoc   = ThisComponent	
oSheet = oDoc.CurrentController.ActiveSheet	
If oSheet.isProtected Then
   oSheet.unprotect("")
Else
   oSheet.protect("")
End If
End Sub

protect("") > Proteção sem senha

1 Like