Página 1 de 1
Evitar acesso no modo leitura
Enviado: 19 Out 2017 às 07:19
por Isnar
Pessoal bom dia!
Tenho uma planilha com macro de login de acesso, porém quando outro usuário executa o arquivo em seu computador ao qual o Excel não está habilitado para macro ele executa normalmente (solicitando habilitar macro), mas até permitindo edição e salvamento sem solicitar a login. Eu tentei diversas funções para corrigir mas sem sucesso, vocês poderiam me indicar alguma função para evitar que qualquer usuário abra a planilha sem fazer login na macro?
Re: Evitar acesso no modo leitura
Enviado: 19 Out 2017 às 07:28
por alexandrevba
Bom dia!!
Não há como garantir que as macros fiquem habilitadas, embora há algumas formas de que ajude a resolver!
Uma das possível forma de resolver, ocultar todas as guias de acesso ao arquivo (
), deixando apenas uma guia (Menu), para acessar novamente o Userform de login.
Edição:
Altere para
.Visible = xlVeryHidden
Att
Evitar acesso no modo leitura
Enviado: 19 Out 2017 às 08:04
por Isnar
Sim, fiz algo parecido mas não funcionou.
Application.DisplayFullScreen = True
ActiveWorkbook.Unprotect "15"
Sheets("Menu").Visible = True
Sheets("DRECompMês ").Visible = True
Sheets("DRECompAcum").Visible = True
Sheets("Acessos").Visible = True
Sheets("DREResumo").Visible = True
Sheets("DadosViab.").Visible = True
Sheets("CustoGusa").Visible = True
Sheets("CustoCarvão").Visible = True
Sheets("CustoUTM").Visible = True
Sheets("CustoFundição").Visible = True
Sheets("BPContábil").Visible = True
Sheets("BPGerencial").Visible = True
Sheets("IND.").Visible = True
Sheets("Transporte").Visible = True
Sheets("NCG").Visible = True
Sheets("FC").Visible = True
Sheets("Graficos").Visible = True
Sheets("Dinamica").Visible = True
Sheets("DadosGrafico").Visible = True
Sheets("DREConsolid").Visible = True
Sheets("DREGusa").Visible = True
Sheets("DRETermo").Visible = True
Sheets("DREFund").Visible = True
Sheets("DRESilvCarb").Visible = True
Sheets("DREUTM").Visible = True
Sheets("DRECorp").Visible = True
Sheets("PE").Visible = True
Sheets("NCG A").Visible = True
Sheets("PE 2").Visible = True
Sheets("FC A").Visible = True
Sheets("EMPRESTIMO DE CURTO PRAZO (2)").Visible = True
Application.Visible = False
UserForm1.Show
Re: Evitar acesso no modo leitura
Enviado: 19 Out 2017 às 08:28
por alexandrevba
Bom dia!!
Como não funcionou? Detalhe melhor!!
Use:
Edição:
Altere para
.Visible = xlVeryHidden
Você pode fechar e abrir o seu arquivo com somente essa (Menu) guia visível.
Código: Selecionar todosPrivate Sub Workbook_BeforeClose(Cancel As Boolean)
'Esse código deve ser inserido dentro do módulo de EstaPasta_de_trabalho
Sheets("Menu").Visible = True
Call AleVBA_27547 'Para ocultar as guias
End Sub
Código: Selecionar todosPrivate Sub Workbook_Open()
'Esse código deve ser inserido dentro do módulo de EstaPasta_de_trabalho
Sheets("Menu").Visible = True
Call AleVBA_27547 'Para ocultar as guias
End Sub
################################
Dica de loop...
Código: Selecionar todosSub AleVBA_27547()
'Dica para seu código postado na questão do loop entre as guias
Dim ws As Worksheet
Sheets("Menu").Visible = False
For Each ws In ActiveWorkbook.Worksheets
Select Case UCase(ws.Name)
Case "Menu"
ws.Visible = True
Case Else
ws.Visible = False
End Select
Next ws
End Sub
Att
Evitar acesso no modo leitura
Enviado: 19 Out 2017 às 08:45
por Isnar
eu ocultei todas as guias (menos uma instruindo o usuário a habilitar a macro) e fiz essa macro, agora eu não sei o porque outro usuário que não tem a macro habilitada consegue visualizar a planilha normalmente, só aparece a guia de login se ele clicar em habilitar macro. Há eu ocultei as guias no sentido de proteção de planilha deixa eu verificar Visible = xlVeryHidden eu não tinha atentado para isso.
Re: Evitar acesso no modo leitura
Enviado: 19 Out 2017 às 09:28
por Isnar
alexandrevba escreveu:Bom dia!!
Como não funcionou? Detalhe melhor!!
Use:
Edição:
Altere para .Visible = xlVeryHidden
Você pode fechar e abrir o seu arquivo com somente essa (Menu) guia visível.
Código: Selecionar todosPrivate Sub Workbook_BeforeClose(Cancel As Boolean)
'Esse código deve ser inserido dentro do módulo de EstaPasta_de_trabalho
Sheets("Menu").Visible = True
Call AleVBA_27547 'Para ocultar as guias
End Sub
Código: Selecionar todosPrivate Sub Workbook_Open()
'Esse código deve ser inserido dentro do módulo de EstaPasta_de_trabalho
Sheets("Menu").Visible = True
Call AleVBA_27547 'Para ocultar as guias
End Sub
################################
Dica de loop...
Código: Selecionar todosSub AleVBA_27547()
'Dica para seu código postado na questão do loop entre as guias
Dim ws As Worksheet
Sheets("Menu").Visible = False
For Each ws In ActiveWorkbook.Worksheets
Select Case UCase(ws.Name)
Case "Menu"
ws.Visible = True
Case Else
ws.Visible = False
End Select
Next ws
End Sub
Att
Resolvido, muito obrigado.