Logo Hardware.com.br
ncezarcf
ncezarcf Membro Junior Registrado
68 Mensagens 10 Curtidas

[Resolvido] Macro para desbloquear e bloquear planilha

#1 Por ncezarcf 19/08/2022 - 17:20
Olá, pessoal.

Gostaria de uma ajuda para elaborar um código VBA para desbloquear e (voltar a) bloquear aba, pois não tenho muito conhecimento sobre macros.

A planilha que segue em anexo se trata de um projeto para criar relatório de audiência mediante automações com macro.

Mais especificamente pretendo incluir essa macro na aba “Relatório”.

Nessa aba ("Relatório"), as áreas em cinza, a tabela e três linhas abaixo dessa tabela deverão estar desbloqueadas. As demais células serão todas bloqueadas, para evitar alteração no projeto. E as formas (ou seja, os botões e os ícones), contendo macros, também estão configuradas para ficarem bloqueadas.

Essas proteções são importantes, pois evita de o usuário deletar ou mover as formas acidentalmente ou desconfigurar a aba "Relatório". Além disso, o projeto fica mais seguro e apresentável.

Um outro detalhe: em D13 há um evento Change, para ocultar/reexibir linhas (onde serão postas as informações), conforme o benefício selecionado. Talvez essa informação seja importante.

Pois bem, na verdade, o que eu estou precisando é apenas de uma macro para desbloquear a planilha (antes da macro principal). Em seguida, logo após a macro principal, uma outra macro para tornar a bloquear a planilha, mantendo corretamente todas as proteções pré-definidas, na aba "Relatório".

Preferencialmente que o comando desejado tenha a opção de desbloquear desativando a senha de proteção e voltar a bloquear colocando a senha.

Desde já, agradeço pela ajuda.


_____________________________________________________________________

AUXÍLIO PARA IDENTIFICAÇÃO DAS MACROS NO PROJETO:

Ícone cruz azul (Incluir última linha) – macro 2

Ícone X vermelho (Excluir última linha) – macro 3

Ícone Copiar (copiar linha ativa) – macro 14

Botão Incluir Linhas – macro 4

Botão Excluir Linhas – macro 4

Botão Gerar Relatório – macro 5 (RelAudRELATÓRIO_GerarPDFPastaEspecífica)

Botão Ajustar Texto – macro 6

Botão Novo – macro 8 (macro RelAudRELATÓRIO_NovoRelatório)

Botão Sair – macro 9 (macro RelAud_Sair)

Botão Inserir Nome - macro 1 (RelAudRELATÓRIO_ResponsávelPeloRelatório)

Anexos

ncezarcf
ncezarcf Membro Junior Registrado
68 Mensagens 10 Curtidas
#4 Por ncezarcf
26/08/2022 - 11:08
Seria interessante colocar aqui como resolveu - assim pode ajudar alguém que tenha a mesma dificuldade.


Consegui duas possibilidades. Vejamos a primeira:

Sub ProtegerDesprotegerPlanilha()

'desproteger a planilha
ActiveSheet.Unprotect

'aqui o seu código para executar ações na planilha não protegida

'proteger a planilha
ActiveSheet.Protect: ActiveSheet.EnableSelection = xlUnlockedCells




A outra:

Sub protegerdesproteger()

'Variável para DESBLOQUEAR a planilha.
Dim pswStr As String
'Update by ExtendOffice 20181106
'Linha abaixo sem senha.
pswStr = ""
On Error Resume Next
Application.ScreenUpdating = False
ActiveSheet.Unprotect Password:=pswStr

‘Inserir código principal aqui

'Após, a planilha volta a ser BLOQUEADA automaticamente.
ActiveSheet.Protect Password:=pswStr, DrawingObjects:=true, _
Contents:=True, Scenarios:=true, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, _
AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=True, AllowDeletingRows:=True, _
AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True


End Sub


Qualquer dessas podem ser usadas dependendo do tipo do projeto ou da forma de execução desejada.

Além disso, é possível fazer alterações ou acréscimos nas macros, mas tendo cuidado para não desconfigurar os códigos.

Espero ter ajudado!
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal