Página 1 de 1

Usuários e Acessos - Proteção de Dados

Enviado: 04 Set 2016 às 23:22
por Rovfanni
Olá Pessoal!

Criei uma pasta de trabalho com banco de dados (BD) e, a partir deste, várias abas com gráficos e manipulações do BD trazendo os resultados da empresa. O funcionário que faz a entrada de dados, deve ter acesso somente à tela (aba) de entrada de dados. Só o diretor deverá ter acesso visual às outras abas com os resultados e gráficos da situação da empresa.
Pergunto: é possível colocar acessos diferentes nas abas de uma mesma pasta de trabalho? P. Ex, O funcionário que faz a entrada de dados, apenas pode ver a tela de entrada de dados e o próprio BD, mas não poderá visualizar as telas (abas) de resultados gerados a partir do BD.
Dá pra fazer isso com alguma função do Excel colocando senhas, ou teria que criar clientes/usuários (talvez), usando algum recurso em VBA?
Desde já agradeço.
Abraços a todos/

Re: Usuários e Acessos - Proteção de Dados

Enviado: 05 Set 2016 às 11:15
por alexandrevba
Bom dia!!

Use a pesquisa do fórum, eu vi um projeto que foi postado aqui, nele tem algo próximo do que necessita.
Crie as guias de nome [Menu, Login, Log]
Crie um userform de nome frmLogin, textbox de nome (txtLogin, txtSenha), botão (cmdEntrar, cmdCancelar)
Código:
Dentro do userform cole as rotinas abaixo:
Código: Selecionar todos
Private Sub cmdEntrar_Click()
         If txtLogin = "" Then
            MsgBox "Digite o nome do usuário !"
            Exit Sub
            txtLogin.SetFocus
        Else
          If txtSenha = "" Then
                MsgBox "Digite a senha do usuário !"
                Exit Sub
                txtSenha.SetFocus
          End If
        End If

        col = 1
        lin = 2
        While (Worksheets("Login").Cells(lin, col) <> txtLogin)
            lin = lin + 1
            If lin > 50 Then
                MsgBox "Usuário não esta cadastrado"
                Exit Sub
            End If
        Wend

        Dim senha As String
        col = 2
        senha = Worksheets("Login").Cells(lin, col).Value

        If txtSenha <> senha Then
            MsgBox "A senha não confere !!"
            Exit Sub
        Else
            If txtLogin.Value = "admin" Then
                MsgBox "Seja Bem Vindo " & txtLogin
                lin = 2
                col = 1
                While (Worksheets("Log").Cells(lin, col) <> "")
                    lin = lin + 1
                Wend
                Worksheets("Log").Cells(lin, 1) = txtLogin.Value
                Worksheets("Log").Cells(lin, 2) = txtSenha.Value
                Worksheets("Log").Cells(lin, 3) = Date
                Worksheets("Log").Cells(lin, 4) = Time
                '--------------------
            
                '--------------------
                Dim ws As Worksheet
    
                For Each ws In ActiveWorkbook.Worksheets
                    ws.Visible = xlSheetVisible
                Next ws
                ActiveWindow.DisplayWorkbookTabs = True 'False
                Hide
            Else
                MsgBox "Seja Bem Vindo " & txtLogin
                lin = 2
                col = 1
                While (Worksheets("Log").Cells(lin, col) <> "")
                    lin = lin + 1
                Wend
                Worksheets("Log").Cells(lin, 1) = txtLogin.Value
                Worksheets("Log").Cells(lin, 2) = txtSenha.Value
                Worksheets("Log").Cells(lin, 3) = Date
                Worksheets("Log").Cells(lin, 4) = Time
                Worksheets("Menu").Visible = xlSheetVisible
                Sheets("Menu").Activate
                ActiveWindow.DisplayWorkbookTabs = True 'False
                Hide
            End If
        End If
        Call botaoHabilitar
End Sub
Código: Selecionar todos
Private Sub cmdCancelar_Click()
    Call botaoDesabilitar
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    Application.Quit
End Sub
Código: Selecionar todos
Private Sub UserForm_Terminate()
    Call botaoDesabilitar
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    Application.Quit
End Sub
Código: Selecionar todos
Private Sub Workbook_Open()
    frmLogin.Show
End Sub
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    If Success Then
        Call AlteraTextValor
    End If
End Sub
Na guia Login, cadastre os usuários
Usuario-Senha-MATRICULA-NOME

Att

Usuários e Acessos - Proteção de Dados

Enviado: 06 Set 2016 às 18:37
por Rovfanni
Muito Obrigado pelo retorno Alexandrevba!!
Vou tirar um tempinho pra entender a solução e lhe darei um retorno em breve.
Mas já fico muito agradecido!
Abraço :D