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
#272
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.
Você não está autorizado a ver ou baixar esse anexo.
Editado pela última vez por laennder em 21 Abr 2015 às 08:47, em um total de 1 vez. Razão: Compactar arquivos: Ao anexar um arquivo sempre utilize um formato compactado, recomenda-se ZIP ou RAR (Regras do Fórum)
#276
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.
#278
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.
#279
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:

Imagem

O código VBA ficou assim:
Código: Selecionar todos
Private 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
Você não está autorizado a ver ou baixar esse anexo.
#281
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.
#282
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.Unprotect Password:="123"
Código: Selecionar todos
 ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=False
#284
:D

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
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