Compartilhar via

Excel não habilita as macros em planilhas com senha de acesso.

Anônima
2021-11-02T19:54:08+00:00

As macros das minhas planilhas não estão mais disponiveis/habilitadas desde que inclui uma senha para a abertura do arquivo. mesmo habilitando as macros na configuração. As macros só voltam a funcionar caso eu retire a senha de acesso à planilha.

Microsoft 365 e Office | Excel | Para empresas | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2021-11-07T00:01:38+00:00

Olá,

Minha noiva estava com o mesmo problema depois que fiz algumas macros pra ela, então a solução que encontrei foi criar uma macro com login e senha para entrar na planilha, funciona muito melhor, de maneira mais eficaz que a senha de acesso convencional.

Para isso você vai precisar criar um userform, com 6 coisas nele, 2 labels, 2 caixas de texto e 2 botões de comando.

(vou mandar uma foto do meu userform de login da minha planilha de imposto de renda, vc tira uma ideia de lá)

Depois de finalizar o designe dela, vai precisar definir o comando de cada botão; meus códigos são os seguintes e vou tentar explica-los:

Dei o nome CANCELAR ao botão Cancelar, então: serve pra sair do userform e fechar a planilha.

_____________________________________________

Private Sub CANCELAR_Click()

Unload Me

ThisWorkbook.Close

End Sub

____________________________________________________

Dei o nome ENTRAR ao botão Entrar; nomeei caixa de texto de login de CAIXA_LOGIN; nomeei caixa de texto senha de CAIXA_SENHA

É só mudar os nomes das planilhas entre "aspas duplas" para o nome das suas, e mudar login e senha como preferir em cada nível de acesso.

Fique tranquilo, o xlsheetveryhidden não permite que a pessoa "desoculte" as outras, elas só podem ser mostradas novamente VIA MACRO.

Portanto, também coloque senha nas macros (não lembro de cor, mas pesquisa no youtube que acha).

_____________________________________________________

Private Sub ENTRAR_Click()

'KCG_IR_LOGIN

Application.ScreenUpdating = False 'TELA NÃO PISCA

Dim USUARIO As String

Dim SENHA As String

USUARIO = CAIXA_USUARIO.Text

SENHA = CAIXA_SENHA.Text

'DEFALT (nível de acesso 1)

If USUARIO = "USUARIO" And SENHA = "123" Then

Sheets("planilha1").Visible = xlSheetVisible

Sheets("planilha2").Visible = xlSheetVeryHidden

Sheets("planilha3").Visible = xlSheetVeryHidden

MsgBox ("SEJA BEM VINDO.")

'TRADER (nível de acesso 2)

ElseIf USUARIO = "seulogin1" And SENHA = "suasenha1" Then

Sheets("planilha1").Visible = xlSheetVisible

Sheets("planilha2").Visible = xlSheetVisible

Sheets("planilha3").Visible = xlSheetVeryHidden

MsgBox ("SEJA BEM VINDO!")

''MIKAEL (nível de acesso 3)

ElseIf USUARIO = "seulogin2" And SENHA = "suasenha2" Then

Sheets("planilha1").Visible = xlSheetVisible

Sheets("planilha2").Visible = xlSheetVisible

Sheets("planilha3").Visible = xlSheetVisible

MsgBox ("SEJA BEM VINDO, NOVAMENTE, seunome.")

'incorreto 

Else 

MsgBox ("USUARIO OU SENHA INCORRETOS") 

CAIXA\_SENHA.Text = "" 

Exit Sub 

End If

Application.Visible = True

Unload Me

End Sub

_________________________________________________

O código abaixo só serve pra desabilitar o X de fechar o userform, é bom por, por segurança

_________________________________________________

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If CloseMode = vbFormControlMenu Then

Cancel = True

End If

End Sub

____________________________________________

Depois disso feito há um último trabalho, que é fazer a segurança da planilha, você vai precisar colocar o seguintes códigos na pasta de trabalho geral (EstaPastaDeTrabalho)

O nome da minha userform é LOGIN_SKYRIM, substitua onde for assim, pelo seu

A finalidade destes códigos é, respectivamente: garantir que sempre que a planilha for fechada, só a planilha de nível de acesso 1 fique à mostra (pois toda vez que move a planilha de lugar, as macros são desabilitadas por segurança, então se tivesse salvo com seu acesso, alguém que movesse veria seu acesso; não mostrar a planilha em si assim que abrir o Excel, apenas a userform.

______________________________________________________

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.ScreenUpdating = False 'TELA NÃO PISCA

Sheets("planilha1").Visible = xlSheetVisible

Sheets("planilha2").Visible = xlSheetVeryHidden

Sheets("planilha3").Visible = xlSheetVeryHidden

End Sub

Private Sub Workbook_Open()

Application.ScreenUpdating = False 'TELA NÃO PISCA

Application.Visible = False

LOGIN_SKYRIM.Show

End Sub

___________________________________________________

Acho que é só, boa sorte!

Esta resposta foi útil?

3 pessoas acharam esta resposta útil.
0 comentários Sem comentários

0 respostas adicionais

Classificar por: Mais útil