Inquiridor
COMPARA DADOS DE FORMULÁRIO COM INTERVALO DE PLANILHA

Discussão Geral
-
Boa Tarde a todos!
Estou montando um formulário de login, onde tenho uma planilha como banco de dados com os usuários e respectivas senhas, eu gostaria que ao entrar com o usuário na Text Box ele realizasse uma validação comparando o valor com o banco de dados e quando não encontrar exibir a mensagem de usuário incorreto, o único jeito que consegui foi utilizando o comando FOR, que faz a verificação célula por célula, porém ele apresenta uma mensagem para cada célula verificada. Eu gostaria de saber se existe uma forma para ele verificar todos os campos e no final exibir uma mensagem apenas. Segue abaixo o código que escrevi:
Private Sub Cmd_entrar_Click() For Linha = 9 To 17 Set Usuarios = Worksheets("BD").Cells(Linha, 1) Select Case Me.Txt_usuario Case Is = "" MsgBox " Digite o nome de Usuário! ", vbExclamation, "Aviso" Case Is <> Usuarios MsgBox " Usuario Inválido", vbExclamation, "Aviso" Case Is = Usuarios MsgBox " Usuario Correto", vbExclamation, "Aviso" End Select Next Linha End Sub
Desde já agradeço pela atenção!
Att. Alex Campos
Todas as Respostas
-
Option Explicit Private Sub Cmd_entrar_Click() Dim Linha As Integer For Linha = 9 To 17 Dim achou As Boolean achou = False Dim Usuarios As Worksheet Set Usuarios = ThisWorkbook.Worksheets("BD").Cells(Linha, 1) Select Case Me.Txt_usuario Case Is = "" MsgBox " Digite o nome de Usuário! ", vbExclamation, "Aviso" Exit For Case Is = Usuarios MsgBox " Usuario Correto", vbExclamation, "Aviso" achou = True Exit For End Select If achou = False Then MsgBox " Usuario Inválido", vbExclamation, "Aviso" End If Next Linha End Sub
Anderson Diniz
-
Anderson Diniz Muito grato pela resposta!
Porém ainda estou com o problema que quando ele apresenta "Usuário Inválido" ele apresenta 9 vezes seguida a mensagem ( que é o numero de célula que tem no intervalo ), tem alguma outra forma para aparecer apenas uma mensagem?
Mais uma Vez agradeço!
Att. Alex Campos
-
Option Explicit Private Sub Cmd_entrar_Click() Dim Linha As Integer For Linha = 9 To 17 Dim achou As Boolean achou = False Dim Usuarios As Worksheet Set Usuarios = ThisWorkbook.Worksheets("BD").Cells(Linha, 1) Select Case Me.Txt_usuario Case Is = "" MsgBox " Digite o nome de Usuário! ", vbExclamation, "Aviso" Exit Sub Case Is = Usuarios MsgBox " Usuario Correto", vbExclamation, "Aviso" achou = True Exit For End Select Next Linha If achou = False Then MsgBox " Usuario Inválido", vbExclamation, "Aviso" End If End Sub
Anderson Diniz
-
Ele esta apresentando erro de tempo de execução "13": Tipos incompatíveis no comando "Set Usuários ...
Private Sub Cmd_entrar_Click() Dim Linha As Integer For Linha = 9 To 17 Dim Achou As Boolean Achou = False Dim Usuarios As Worksheet Set Usuarios = ThisWorkbook.Worksheets("BD").Cells(Linha, 1) Select Case Me.Txt_usuario Case Is = "" MsgBox " Digite o nome de Usuário! ", vbExclamation, "Aviso" Exit For Case Is = Usuarios Me.Txt_senha.SetFocus Achou = True Exit For End Select Next Linha If Achou = False Then MsgBox " Usuario Inválido" End If End Sub
-
Private Sub Cmd_entrar_Click() Dim Linha As Integer For Linha = 9 To 17 Dim Achou As Boolean Achou = False Dim Usuarios As Worksheet Set Usuarios = ThisWorkbook.Worksheets("BD") Select Case Me.Txt_usuario Case Is = "" MsgBox " Digite o nome de Usuário! ", vbExclamation, "Aviso" Exit Sub Case Is = Usuarios.Cells(Linha, 1) Me.Txt_senha.SetFocus Achou = True Exit For End Select Next Linha If Achou = False Then MsgBox " Usuario Inválido" End If End Sub
Anderson Diniz
- Editado AndersonFDiniz2 sexta-feira, 25 de agosto de 2017 03:18
-