Página 1 de 1

Desbloquear e bloquear planilha pelo vba com senha

Enviado: 25 Jun 2018 às 14:51
por JairJunior2
Boa tarde!

Preciso de um código VBA que faça a seguinte Ordem:

Desbloquear a planilha com a senha "1234"
Fazer o filtro de status “ativos”
Bloquear a planilha com a senha "1234"

Duvidas estou à disposição.

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 25 Jun 2018 às 15:14
por babdallas
Veja se esta dica do Tomás Vasquez ajuda.

http://www.tomasvasquez.com.br/forum/vi ... .php?t=268

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 25 Jun 2018 às 19:01
por JairJunior2
babdallas escreveu:Veja se esta dica do Tomás Vasquez ajuda.

http://www.tomasvasquez.com.br/forum/vi ... .php?t=268
Eu usei o ActiveSheet.unprotect e ActiveSheet.protect mas na hora de executar da erro ai eu não entendi o que foi o erro :?:

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 25 Jun 2018 às 19:33
por osvaldomp
Experimente:
Código: Selecionar todos
Sub AplicaAutoFiltro()
 With ActiveSheet
  .Unprotect "1234"
  .AutoFilterMode = False
  .Range("A2:D2").AutoFilter Field:=4, Criteria1:="Ativo"
  .Protect "1234"
 End With
End Sub

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 26 Jun 2018 às 16:53
por JairJunior2
osvaldomp escreveu:Experimente:
Código: Selecionar todos
Sub AplicaAutoFiltro()
 With ActiveSheet
  .Unprotect "1234"
  .AutoFilterMode = False
  .Range("A2:D2").AutoFilter Field:=4, Criteria1:="Ativo"
  .Protect "1234"
 End With
End Sub
A idéia é esta mesmo, so que preciso que a linha do filtro fique liberada para filtrar depois da macro ser executada, o que devo fazer?

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 26 Jun 2018 às 17:20
por osvaldomp
JairJunior2 escreveu:... so que preciso que a linha do filtro fique liberada para filtrar depois da macro ser executada...
Você não informou isso antes :(


Acrescente a parte em vermelho ao código que passei conforme abaixo.
.Protect "1234", True, True, True , AllowFiltering:=True

obs. da ajuda do VBA ~~~> A propriedade AllowFiltering permite ao usuário alterar os critérios de filtro em um AutoFiltro existente. O usuário não pode criar ou remover um AutoFiltro em uma planilha protegida.
Lembrando também que as células envolvidas no Auto Filtro devem estar desbloqueadas.

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 26 Jun 2018 às 20:23
por JairJunior2
osvaldomp escreveu:
JairJunior2 escreveu:... so que preciso que a linha do filtro fique liberada para filtrar depois da macro ser executada...
Você não informou isso antes :(


Acrescente a parte em vermelho ao código que passei conforme abaixo.
.Protect "1234", True, True, True , AllowFiltering:=True

obs. da ajuda do VBA ~~~> A propriedade AllowFiltering permite ao usuário alterar os critérios de filtro em um AutoFiltro existente. O usuário não pode criar ou remover um AutoFiltro em uma planilha protegida.
Lembrando também que as células envolvidas no Auto Filtro devem estar desbloqueadas.

Perfeito amigo!! Muito Obrigado e desculpa por não informar antes..

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 27 Jun 2018 às 08:06
por babdallas
No link que eu havia passado, o Tomás Vasquez passou as propriedades do método Protect da planilha, sendo um deles este de permitir fazer autofiltro.

Aos administradores do fórum, sugiro mudar o título deste tópico para: "Manter Autofiltro ativo na planilha após esta ser bloqueada via VBA"

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 09:25
por rsaverio
boa tarde, estou com uma dúvida no Excel 2013, procurei e não consegui resolver, tenho um botão na minha planilha que aciona uma macro, esta macro executa o botão (Atualizar tudo) na aba de Dados, ela chama uma SELECT no meu banco de dados SQL, onde passo 2 parâmetros pra ela, esses parâmetros são duas colunas na minha planilha no Excel. Preciso deixar essa planilha bloqueada porem os 2 campos de parâmetros desbloqueados para que o usuário possa alterá-los, com isso, que ela se execute lendo esses parâmetros quando clicar no botão da macro... Testei alguns comandos no VBA pra desbloquear e depois bloquear novamente mas nada deu certo, ele desbloqueia mas quando vai bloquear novamente preciso que os dois campos de parâmetros continuem desbloqueados e o resto da planilha bloqueado...

O que falta no meu código

Sub Executar()

'Desbloqueia planilha
Sheets("AV-GERIBA").Select
ActiveSheet.Unprotect Password:="MASTER"

' Executar Macro
ActiveWorkbook.RefreshAll

'Bloqueia Planilha
Sheets("AV-GERIBA").Select
ActiveSheet.Protect Password:="MASTER"

End Sub

Desta maneira continua falando que a planilha que estou tentando alterar esta protegida, se eu retiro o as linhas do Bloqueio funciona, porém a planilha fica desprotegida.

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 10:52
por osvaldomp
1. desproteja a planilha e selecione as duas colunas que precisam ficar desbloqueadas
2. clique com o direito sobre qualquer parte da seleção
3. Formatar células / Proteção / desmarque Bloqueadas
4. rode o seu código

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 10:56
por rsaverio
Obrigado pelo retorno, sei desse procedimento que falou, mas quero que ele seja feito pelo VBA tudo em tempo de execução da macro, junto do Desbloqueio e Bloqueio que estou pedindo pro comando fazer.

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 11:09
por osvaldomp
Quais são as colunas de interesse ?

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 11:31
por rsaverio
As colunas que devem ficar sempre liberadas pra edição são a C1 e C2

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 11:39
por osvaldomp
Antes você mencionou duas colunas, porém agora você informa que são duas células, C1 e C2. ;) :?:

O que devo considerar ?

Ainda, se C1 e C2 devem permanecer sempre desbloqueadas para a inserção manual de dados, não vejo sentido em atribuir ao código VBA a tarefa de desbloquear células que já estarão desbloqueadas.

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 12:02
por rsaverio
tem toda razão são duas células !

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 13:59
por rsaverio
Então, vc não entendeu a dinâmica, imagina um programa que as únicas coisas que vc pode acessar são dois campos de data (ANO e MÊS) que é o caso das minhas duas células, após preencher o campo vai clicar no botão da macro e ler os resultados que traz em uma tabela, praticamente toda planilha é bloqueada a não ser as duas células do período que são elas o parâmetros de entrada da minha pesquisa no Banco SQL... por isso ao clicar na macro tenho que via comando VBA desbloquear a planilha executar as macro com os parâmetros de entrada informado nas minhas duas células, a macro vai trazer as informações em forma de tabela, e em seguida tenho que bloquear novamente a planilha deixando a penas as células de parâmetro desbloqueadas para uma próxima pesquisa, é isso.

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 15:00
por osvaldomp
A sua explicação reforçou a minha convicção de que não faz sentido seguidamente desbloquear o que já está desbloqueado , tendo em vista que uma vez desbloqueadas manualmente as células permanecerão desbloqueadas mesmo que a planilha seja depois desprotegida/protegida múltiplas vezes, mas .... segue uma sugestão para o solicitado.
Acrescente ao seu código a linha em vermelho, conforme abaixo.

'Bloqueia Planilha
Sheets("AV-GERIBA").Select
[C1:C2].Locked = False

Se você quiser racionalizar o seu código segue uma sugestão abaixo, já com o comando que irá seguidamente desbloquear o que já estará desbloqueado.
Código: Selecionar todos
Sub ExecutarV2()
 'Desbloqueia planilha
 With Sheets("AV-GERIBA")
 .Unprotect Password:="MASTER"
 ' Executar Macro
 ActiveWorkbook.RefreshAll
 'Bloqueia Planilha
 .[C1:C2].Locked = False
 .Protect Password:="MASTER"
 End With
End Sub

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 16:35
por rsaverio
Valei obrigado... seguinte o comando quando ele volta a bloquear a tabela

.Protect Password:="MASTER"

vem uma mensagem na tela do Excel (A célula ou gráfico que vc esta tentando alterar está em uma planilha protegida. Para fazer alteração, clieque em Desbloquear planilha na guia revisão (você pode precisar de uma senha))

se eu tiro o comando passa e executa porém claro a planilha fica desbloqueada.

Re: Desbloquear e bloquear planilha pelo vba com senha

Enviado: 05 Fev 2020 às 17:29
por osvaldomp
Estranho, pois aqui funciona de boa.

Disponibilize uma amostra do seu arquivo Excel com o código que está apresentando problema instalado.