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
#14812
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/
#14828
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
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