Notifications
Clear all

Desproteger e Proteger planilha via macro

7 Posts
3 Usuários
0 Reactions
1,875 Visualizações
JaimeBorge
(@jaimeborge)
Posts: 41
Eminent Member
Topic starter
 

Boa noite.

Tenho uma planilha em que um usuario vai digitar alguns dados e clicar em um botão.

Nesse botão, tem algumas macros que irão ser executadas. Uma delas abre, salva e fecha uma outra planilha que eu gostaria que não fosse aberta sem ser por pessoal autorizado.

Como fazer isso?

Grato

 
Postado : 11/02/2016 3:58 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Quem é autorizado? Digo, qual lógica determina os autorizados? E digo mais, ande colocar essa macro? Pq se o Excel está fechado e alguém da duplo clique no arquivo proibido, neste momento não há macros rodando como definir se o arquivo pode ou não ser aberto?
Tá meio confuso, pq vc propõe uma solução q não atende nenhum bom critério de segurança

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/02/2016 4:06 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Uma solução seria colocar uma senha no novo arquivo gerado.

Antes de salvar o arquivo acrescente essa linha

ActiveWorkbook.Password = "123"

Troque por uma senha de acordo com sua necessidade e que mais importante NAO ESQUEÇA.

Outra solução seria salvar esse arquivo em um local que as pessoas nao autorizadas nao tenham acesso.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 11/02/2016 8:59 pm
JaimeBorge
(@jaimeborge)
Posts: 41
Eminent Member
Topic starter
 

Deixa eu tentar explicar melhor.

Tem um arquivo, no qual uma pessoa apenas digita os dados, ok?

Esse arquivo que é digitado, ele abre(sem que o digitador veja) o outro arquivo que é um resumo dos dados digitados.

Esse resumo é o que somente o supervisor pode ver.

Pensei em na hora da transferência dos dados, quando abre o resumo desbloquear e na hora de fechar, bloquear com senha.

Se nas permissões do arquivo resumo, criptografar com senha, somente quem tem a senha vai conseguir abrir(em hipotese)

Seria criptografar, acho... não desproteger... aquele tipo que se tentar abrir a planilha, pede senha.

Será que dá pra fazer isso?

Valeu!

 
Postado : 12/02/2016 6:37 am
(@mprudencio)
Posts: 2749
Famed Member
 

O código que sugeri acima vai proteger a planilha

Active.workbook.unpassword ="123"

Deve desproteger.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 12/02/2016 7:30 am
JaimeBorge
(@jaimeborge)
Posts: 41
Eminent Member
Topic starter
 

Oi, tentei de várias formas com os códigos que vc enviou.

Deu: Erro em tempo de execução 424: O objeto é obrigatório
Ficou em destaque a linha onde desprotege a planilha.
Essa macro abre a planilha resumo(que somente supervisor pode acessar) copia os dados digitados, cola na resumo, salva e fecha a resumo.
Abaixo, o código de tudo que é feito nessa macro.
Quando a macro é executada, pede a senha... se colocar, aparece o erro, e também vai ficar sem sentido, pois o digitador saberá a senha da planilha que somente o supervisor pode acessar.

Sub Copiacola()

Workbooks.Open Filename:= _
"C:Tabela RPCQ.xlsx"

Active.Workbook.unpassword = "123" *** Aqui ficou selecionado

' Seleciona primeira linha em branco, coluna D
Range("D1048576").End(xlUp).Offset(1, 0).Select
' Seleciona planilha de dados
Windows("Relatório Produção.xlsm").Activate
' Seleciona aba com dados
Sheets("Form_RPCQ_vs05").Select
' Seleciona celulas a serem copiadas
Range("I71:I102").Select
' Faz a copia
Selection.Copy
' Seleciona planilha destino dos dados
Windows("Tabela RPCQ.xlsx").Activate
' Copia os dados
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
' Seleciona primeira linha em branco
Range("D1048576").End(xlUp).Offset(1, 0).Select
' Limpa area de transferencia
Application.CutCopyMode = False

ActiveWorkbook.Password = "123"

' Salva a planilha
ActiveWorkbook.Save
' Fecha planilha
ActiveWindow.Close
Range("B4").Select

End Sub

 
Postado : 12/02/2016 8:04 am
JaimeBorge
(@jaimeborge)
Posts: 41
Eminent Member
Topic starter
 

Depois de muito bater a cabeça, um amigo resolveu...

Aqui a solução, funcionou do jeito que eu precisava.

Estava assim o meu código:

Workbooks.Open Filename:= _
"C:Tabela RPCQ.xlsx"

Active.Workbook.unpassword = "123"

e no final da macro

ActiveWorkbook.Password = "123"

Ficou assim:

Workbooks.Open Filename:="C:Tabela RPCQ.xlsx", _
Password:="123"

Fica mais uma vez, meu agradecimento a quem se propos a ajudar.
Valeu!

 
Postado : 12/02/2016 12:25 pm