Notifications
Clear all

Código que compara textbox

10 Posts
3 Usuários
0 Reactions
1,583 Visualizações
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

Olá à todos.

Já pesquisei em tudo quanto foi lugar e não encontrei o que preciso.

No meu formulário tenho 3 textbox que gostaria que fizesse a comparação com a planilha "Dados" simultaneamente.

Exemplo:

textbox1 com a coluna A

textbox2 com a coluna B

textbox3 com a coluna C

Mas tem que ser simultaneamente, se não coincidir algum dar a mensagem.

 
Postado : 29/08/2020 11:10 pm
Raygsson
(@raygsson)
Posts: 68
Trusted Member
 

Não precisa fazer isso simultâneo, pode ir validando um campo por vez até validar os 3, algo como isto:

obs: nao consegui colar aqui com a indentação correta, segue em anexo uma versão mais legível.

fim = Range("A3").End(xlDown).Row
For i = 3 To fim
If TextBox1.Value = Trim(Cells(i, "A")) Then
apt = Trim(Cells(i, "A"))
For y = 3 To fim
If TextBox2.Value = Trim(Cells(y, "B")) And Trim(Cells(y, "A")) = Trim(apt) Then
bloco = Trim(Cells(y, "B"))
For x = 3 To fim
If TextBox3.Value = Trim(Cells(x, "C")) And Trim(Cells(x, "A")) = Trim(apt) And Trim(Cells(x, "B")) = Trim(bloco) Then
'se chegou até este ponto todas as informações estao na base
'escreva aqui o restante do seu codigo e demais ajustes necessários
End If
Next
MsgBox "SENHA Inexistente", vbExclamation, "Aviso."
Exit Sub
End If
Next
MsgBox "BLOCO Inexistente", vbExclamation, "Aviso."
Exit Sub
End If
Next
MsgBox "APTO Inexistente", vbExclamation, "Aviso."


Anexo removido
 
Postado : 30/08/2020 1:43 am
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

Bom dia. Fiz o teste mas não encontra as informações na planilha. 

 
Postado : 30/08/2020 8:16 am
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

Olhei melhor, mesmo quando a textbox 3 esta correta aparece mesmo assim a mensagem "senha inexistente".

 
Postado : 30/08/2020 8:50 am
Raygsson
(@raygsson)
Posts: 68
Trusted Member
 

Você conseguiu analisar o codigo?

Aqui rodou normal, fiz o teste colocando qualquer uma daquelas combinacoes preenchidas na planilha. 

 

 
Postado : 30/08/2020 1:03 pm
Raygsson
(@raygsson)
Posts: 68
Trusted Member
 

Já sei o que está acontecendo , você não escreveu nada naquele ponto que comentei no código. A macro está chegando lá e passando direto depois. Se você colocar pelo menos um Stop vai conferir que chega até lá, que tudo foi validado, daí pra frente vc precisa complementar o restante com a sua necessidade.

 
Postado : 30/08/2020 1:10 pm
(@anderson)
Posts: 203
Reputable Member
 
fim = Range("A3").End(xlDown).Row
For i = 3 To fim
If TextBox1.Value = Trim(Cells(i, "A")) Then
apt = Trim(Cells(i, "A"))
For y = 3 To fim
If TextBox2.Value = Trim(Cells(y, "B")) And Trim(Cells(y, "A")) = Trim(apt) Then
bloco = Trim(Cells(y, "B"))
For x = 3 To fim
If TextBox3.Value = Trim(Cells(x, "C")) And Trim(Cells(x, "A")) = Trim(apt) And Trim(Cells(x, "B")) = Trim(bloco) Then
'se chegou até este ponto todas as informações estao na base
'escreva aqui o restante do seu codigo e demais ajustes necessários

msgbox "login efetuado"
exit sub
End If
Next
MsgBox "SENHA Inexistente", vbExclamation, "Aviso."
Exit Sub
End If
Next
MsgBox "BLOCO Inexistente", vbExclamation, "Aviso."
Exit Sub
End If
Next
MsgBox "APTO Inexistente", vbExclamation, "Aviso."

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 30/08/2020 1:23 pm
Raygsson
(@raygsson)
Posts: 68
Trusted Member
 

Isso, se tiver tudo certo deve exibir "login efetuado".

se preencher qualquer campo incorreto não deve chegar nesse ponto.

No restante pode direcionar o usuario pra qualquer outro local que ele teria acesso estando  logado.

 
Postado : 30/08/2020 1:28 pm
(@anderson)
Posts: 203
Reputable Member
 

Este vídeo explica:

 

https://youtu.be/2PefT1GGMxM

Private Sub CommandButton1_Click()
Dim linha As Long
Dim achou As Boolean

achou = False
linha = 2

While Plan1.Range("A" & linha).Value <> "" And achou = False

If Plan1.Range("A" & linha).Value = Me.TextBox1.Text Then
If Plan1.Range("B" & linha).Value = Me.TextBox2.Text Then
If Plan1.Range("C" & linha).Value = Me.TextBox3.Text Then

achou = True

End If
End If
End If

linha = linha + 1

Wend

If achou = True Then

Unload Me
UserForm2.Show
Else

Me.TextBox1.Text = ""
Me.TextBox2.Text = ""
Me.TextBox3.Text = ""
MsgBox "Dados incorretos."

End If




End Sub

Editado pela Moderação. Motivo: Utilize o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.

Este post foi modificado 4 anos atrás por Anderson

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 30/08/2020 2:11 pm
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

Agora sim, ficou bom. Era isso mesmo, eu não tinha colocado nada onde vc escreveu para colocar.

Ficou muito bom mesmo, agora vem as adaptações...rs

Muito obrigado.

 
Postado : 30/08/2020 4:20 pm