Página 1 de 1
Login e senha na pasta de trabalho para abrir planilhas
Enviado: 21 Abr 2015 às 07:30
por Joscyel
Olá Guru, bom dia!
Estou elaborando uma pasta de trabalho onde será compartilhada em rede para várias pessoas usarem, mas tenho que colocar restrição a cada usuário. Por exemplo. Na pasta de trabalho tenho as planilhas Plan1 a Plan20, mas o Usuário "A" terá acesso somente as planilhas Plan5 e Plan10, o Usuário "B" terá acesso somente as planilhas de Plan2 a Plan10, o usuário "C" terá acesso as planilhas Plan12, Plan15 e Plan17 e o administrador terá acesso a todas as planilhas.
Achei uma planilha com o código em VBA como eu queria, mas o problema é que ele está com um erro e como não entendo quase nada de VBA, estou sem poder corrigir. A planilha até faz o que preciso, porém quando insiro um usuário e indico a qual planilha ele terá acesso, ele sempre começa da Plan1 e não da que indico.
Segue a planilha que baixei com o código em anexo.
Login e senha na pasta de trabalho para abrir planilhas
Enviado: 21 Abr 2015 às 09:09
por laennder
Joscyel,
Testei a planilha e não encontrei o erro que você citou. Aparece justamente as abas que eu configurei na plan 'Senha'. Apenas tem q ficar atento que você deve configurar uma planilha por linha, repetindo o usuário e a senha.
Re: Login e senha na pasta de trabalho para abrir planilhas
Enviado: 21 Abr 2015 às 11:20
por Joscyel
Lander, tente inserir um novo usuário e deixar ele para abrir somente a Plan3, quando fizer isso e colocar o login e senha, o que vai aparecer é a Plan1. É isso que esta acontecendo comigo.
Outra coisa é como renomear o nome da planilha e como inserir mais planilhas também. Nesse modelo ai, não consigo inserir e nem renomear uma planilha.
Re: Login e senha na pasta de trabalho para abrir planilhas
Enviado: 21 Abr 2015 às 12:13
por laennder
Agora sim percebi o erro.
Mudei um pouco o código, agora você vai adicionar um usuário por linha, e separar as planilhas por virgula, sem espaço entre elas... assim:
O código VBA ficou assim:
Código: Selecionar todosPrivate Sub CommandButton1_Click()
Dim indice As Long
Dim lTotal As Long
Dim lContador As Long
lsDesabilitar
On Error Resume Next
indice = Application.WorksheetFunction.Match(txtUsuario.Text, Sheets("Senha").Columns(1), 0)
If Err > 0 Then
'usuario nao encontrado
MsgBox "Usuário ou senha incorretos!"
Err.Clear
Else
'verifica se a senha está correta
If Sheets("Senha").Cells(indice, 2) = txtSenha.Text Then
'senha correta
Dim arr As Variant
arr = Split(Sheets("Senha").Cells(indice, 3), ",")
ActiveWorkbook.Unprotect Password:="123"
For i = 0 To UBound(arr)
Sheets(arr(i)).Visible = True
Next i
Unload frmLogin
ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=False
Else
'senha errada
MsgBox "Usuário ou senha incorretos!"
End If
End If
Exit Sub
End Sub
Login e senha na pasta de trabalho para abrir planilhas
Enviado: 21 Abr 2015 às 12:43
por Joscyel
Laender, era isso mesmo. Porém ainda vejo que nao consigo inserir novas planilhas e nem renomear as existentes. Tenho as planilhas Plan1, Plan2 e Plan3 nesse arquivo, queria saber se tem como renomear as mesmas e inserir umas planilhas novas nesse arquivo, de modo que eu consiga também colocar elas para abrirem no login como as ja existentes.
Login e senha na pasta de trabalho para abrir planilhas
Enviado: 21 Abr 2015 às 12:50
por laennder
Você não consegue porque a Pasta de Trabalho fica protegida com a senha 123. Você precisa desproteger a pasta de trabalho antes de renomear e inserir novas planilhas.
Para alterar a senha, certifique de alterar tb no código VBA, sempre que aparecer as seguintes linhas:
Código: Selecionar todos ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=False
Login e senha na pasta de trabalho para abrir planilhas
Enviado: 21 Abr 2015 às 12:59
por Joscyel
Laender, muito obrigado. Fica meio trabalhoso, mas da pra mudar manualmente. Assim ficou como preciso. Obrigado mais uma vez.

Login e senha na pasta de trabalho para abrir planilhas
Enviado: 21 Abr 2015 às 13:02
por laennder
Se o tópico ficou resolvido, peço por gentiliza em clicar no botão Marcar Resolvido da resposta que resolveu, e clicar nos botões Obrigado das respostas que ajudaram.
Isso serve para organizar os tópicos solucionados e ranquear as melhores mensagens e membros no fórum, destacando assim os mais participativos.
Abraço