Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por Isnar
Posts
#27530
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?
Avatar do usuário
Por alexandrevba
Avatar
#27533
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 (
Código: Selecionar todos
 .Worksheets("Plan1").Visible = xlSheetVisible
), deixando apenas uma guia (Menu), para acessar novamente o Userform de login.


Edição:
Altere para .Visible = xlVeryHidden

Att
Por Isnar
Posts
#27539
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
Avatar do usuário
Por alexandrevba
Avatar
#27547
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 todos
Private 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 todos
Private 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 todos
Sub 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
Por Isnar
Posts
#27552
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.
Por Isnar
Posts
#27556
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 todos
Private 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 todos
Private 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 todos
Sub 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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord