Desbloqueando intervalos de edição no Excel usando o VBA

0

Estou usando o VBA para adicionar informações à minha planilha sempre que os dados são inseridos em uma coluna diferente. No entanto, para fazer isso, desbloqueio e bloqueio a folha como parte do script vba. Isso requer que o usuário insira novamente sua senha para editar a próxima linha. Existe uma solução para isso?

    
por Jeff 20.09.2018 / 18:50

2 respostas

0

Eu fiz uma pesquisa rápida sobre essa questão e descobri que uma opção, à qual Thales aludiu, seria passar a senha como um argumento para o seu VBA.

'Protect worksheet with a password
Sheets("Sheet1").Protect Password:="myPassword"

'Unprotect a worksheet with a password
Sheets("Sheet1").Unprotect Password:="myPassword"

A desvantagem disso é que sua senha ficará visível para qualquer pessoa que possa abrir seu código. Então você pode querer criar uma segunda senha para proteger seu código de macro se você seguir essa rota. Veja o link abaixo.

link

EDIT: Com base no seu comentário acima, pode nos ajudar a ver seu código, então podemos descobrir onde faz sentido manipular a senha.

    
por 20.09.2018 / 20:53
0

Posso sugerir dois métodos possíveis para permitir que determinado usuário edite o intervalo de dados especificado.

Método 1 (Macro VBA):

Private Sub Workbook_Open()

Dim winUser As String

winUser = Environ("username")

If winUser = "Admin" Then

Range("A1:I100").Select
    ActiveSheet.Protection.AllowEditRanges.Add Title:="AdminRange", Range:=Range( _
    "A1:I100"), Password:="123"
End If

If winUser = "User1" Then

Range("A200:I400").Select
    ActiveSheet.Protection.AllowEditRanges.Add Title:="User1Range", Range:=Range( _
    "A200:I400"), Password:="231"
End If
End Sub

Método 2:

  1. Pressione Guia Revisar e, em seguida, clique em Permitir que os usuários editem intervalos .
  2. Clique no botão Novo e a caixa de diálogo Novo intervalo será exibida.
  3. Escreva Nome do intervalo , Referência da célula (intervalo) & Senha (a senha é opcional).
  4. Clique em Permissões e, em seguida, em Adicionar para abrir Selecionar usuários ou grupos
  5. Se você não encontrar o Nome / Grupo, clique no botão Avançado .
  6. Clique em Localizar agora .
  7. Em seguida, clique em Usuário ou grupo e termine com o botão OK .
  8. Depois que o nome do usuário / grupo for adicionado, você poderá definir se a senha será necessária para editar o intervalo.
  9. Por fim, termine com Ok .

Note, ajuste as referências das células e altere o nome do usuário no código do VBA conforme necessário.

    
por 21.09.2018 / 12:08