Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, estou tentando implementar esse código a seguir, 

funciona a parte de login, mas somente para o primeiro usuário,

não consigo fazer para olhar os demais usuários.

 

O que está de errado?

 

login admin

senha admin

 

 

Sub validarUsuario(usuarioDigitado, senhaDigitada)
    fim = Worksheets("dados").Range("A1").End(xlDown).Row
    'Validação de Usuario'
    For linha = 2 To fim
        If Worksheets("dados").Range("A" & linha) = usuarioDigitado Then
            If Worksheets("dados").Range("B" & linha) = senhaDigitada Then
                'Senha OK
                If Worksheets("dados").Range("C" & linha) = "x" Then
                    Call ativarModulo("Operadores")
                End If
                If Worksheets("dados").Range("D" & linha) = "x" Then
                    Call ativarModulo("Processos")
                End If
                If Worksheets("dados").Range("E" & linha) = "x" Then
                    Call ativarModulo("Clientes")
                End If
                If Worksheets("dados").Range("F" & linha) = "x" Then
                    Call ativarModulo("Entradas")
                End If
                If Worksheets("dados").Range("G" & linha) = "x" Then
                    Call ativarModulo("Saídas")
                End If
                If Worksheets("dados").Range("H" & linha) = "x" Then
                    Call ativarModulo("Controle")
                End If
                If Worksheets("dados").Range("I" & linha) = "x" Then
                    Call ativarModulo("Dashboard")
                End If
                If Worksheets("dados").Range("J" & linha) = "x" Then
                    Call ativarModulo("dados")
                End If
            Else
                'Senha NOK
                MsgBox "Senha Incorreta!"
            End If
        End If
    
    Next
    Unload Login
        
End Sub

 

controle.zip

Postado

@nepsther Parece ser algo com o tipo do dado da senha, já que acontece com valores numéricos. Declare os tipos dos parâmetros como String, isso deve resolver.

 

Sub validarUsuario(usuarioDigitado As String, senhaDigitada As String)

 

Para buscar o usuário acho melhor usar a função Find em vez de fazer um loop. Com esse For a macro vai ficar mais lenta quando tiver mais usuários. Com Find já vai direto para a célula, p.ex,

 

Sub Macro()
    Dim Usuario As String
    Dim Senha   As String
    
    Usuario = "admin"
    Senha = "admin"
    
    If ValidaUsuario(Usuario, Senha) Then
        MsgBox "Bem vindo " & Usuario, vbOKOnly, "Acesso Permitido"
    End If
End Sub

Function ValidaUsuario(Usuario As String, Senha As String) As Boolean
    Dim Procura As Range
    Dim Tabela  As ListObject
    
    Set Tabela = Sheets("dados").[dados].ListObject
    
    If Not Tabela.DataBodyRange Is Nothing Then
        Set Procura = Tabela.ListColumns("USUARIO").DataBodyRange.Find( _
            What:=Usuario, LookIn:=xlValues, LookAt:=xlWhole)
        
        If Not Procura Is Nothing Then
            If Procura.Value = Usuario And Procura(1, 2).Value = Senha Then
                ValidaUsuario = True
            End If
        End If
    End If
End Function

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!