Notifications
Clear all

Proibir Eliminar Planilhas - é possível?

4 Posts
3 Usuários
0 Reactions
1,115 Visualizações
(@pedro12345)
Posts: 48
Eminent Member
Topic starter
 

Olá a todos,

Necessitava de uma certeza, face a ter já realizado uma pesquisa e não terem aparecido resultados...
Tenho um ficheiro Excel com macros, que vai ter ter cerca de 7 utilizadores fazendo registos e gravando os mesmos, entre 3 planilhas (1-Registo; 2-Consulta; 3-Base Dados), tendo ainda 3 planilhas ocultas com dados a serem preenchidos na planilha 1 e 2-(Planilha 4-Nomes; 5- Ferramentas; 6- Info produto).

As 3 planilhas ocultas já se encontram protegidas por password, face aos utilizadores não poderem editar nenhuma célula (apenas o administrador que tiver a senha).
As 3 planilhas visíveis encontram-se com a folha protegida em algumas células, sendo editáveis algumas células para os utilizadores.
Contudo, caso um dos 7 utilizadores cliquem em cima de uma das 3 planilhas visíveis com lado direito do rato, pode selecionar a opção mostrar as outras planilhas ocultas, assim como mover ou no pior dos casos eliminar as que estão visíveis ou eliminar as outras 3 ocultas.
O administrador é o único que tem o separador Programador e que entende a linguagem VBA.

Agora a dúvida é:
Existe algum código para proibir eliminar ou mover ou mostrar/ocultar planilhas em VBA ou que impossibilite aos utilizadores essa opção?
Ou para inserir alguma password para confirmar o eliminar ou mover planilhas, sendo o administrador apenas o editor das mesmas?

Obrigado desde já a todos!

Um abraço.
Pedro

 
Postado : 06/03/2017 5:07 pm
(@vinniz)
Posts: 27
Eminent Member
 

Boa noite, amigo
Sim, basta proteger a pasta de trabalho, conforme imagem anexo.
Caso queira fazer por VBA segue abaixo o código:

'proteger pasta de trabalho
ActiveWorkbook.Protect "abc", Structure:=True, Windows:=False

'desproteger
ActiveWorkbook.Unprotect "abc"

A senha é onde está escrito "abc".

Att,
Vinicius

 
Postado : 06/03/2017 6:04 pm
Syrax
(@syrax)
Posts: 160
Estimable Member
 

Veja se isso te ajuda
o código abaixo, bloqueia o acesso ao menu das planilhas

coloque o código abaixo em "Estapasta_de_trabalho"

Private Sub Workbook_Open()
Application.CommandBars("ply").Enabled = False
Application.CommandBars("cell").Reset
    Dim ContextMenu As CommandBar
    Set ContextMenu = Application.CommandBars("Cell")
    With ContextMenu.Controls.Add(Type:=msoControlButton, before:=2)
        .OnAction = "admin"
        .FaceId = 59
        .Caption = "Admin"
    End With
End Sub

e o código abaixo em módulos

Sub admin()
x = InputBox("DIGITE A SENHA PARA LIBERAR A PLANILHA")
If x = 123 Then 'substitua 123 pela sua senha
Application.CommandBars("ply").Enabled = True
MsgBox "Planilha liberada com sucesso"
Else
MsgBox "PASSWORD INCORRETA"
Exit Sub
End If
End Sub

salve o arquivo e abra novamente, agora clique com o direito em qualquer célula de excel, clique em "Admin"
digite sua senha, e desbloqueie o menu de contexto das planilhas

se isso te ajudou, clique no joinha ao lado de "citar"

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 06/03/2017 7:19 pm
(@pedro12345)
Posts: 48
Eminent Member
Topic starter
 

Obrigado! :)
Com a inserção destes campos em locais específicos de alguns ciclos IF que tinha na progromação Vba consegui o que queria!

ActiveWorkbook.Protect "abc", Structure:=True, Windows:=False

'desproteger
ActiveWorkbook.Unprotect "abc"

Um abraço!

 
Postado : 07/03/2017 5:52 am