How to find next values from the same client

1

If you can help me with this one, I think it will work for others as well. I'm trying to make clicking on searching the TextBoxes are populated with the client data, and again clicking the Search button the TextBoxes are loaded with the next record data from the same client. That is, it goes from registry to registry of the same code.

I'm having trouble with Loop.

Private Sub cmdPequisar_Click()
'Verificar se foi digitado um nome na primeira caixa de texto
If txtCPF.Text = "" Then
MsgBox "Digite o CPF de um cliente"
txtCPF.SetFocus
GoTo Linha1
End If

With Worksheets("Dados Clientes").Range("A:A")
Set c = .Find(txtCPF.Value, LookIn:=xlValues, LookAt:=xlPart)

Do Until Sheets("Dados Clientes").Cells(0, 1) = ""
If Sheets("Dados Clientes").Cells(0, 1) = txtCPF Then

If Not c Is Nothing Then

c.Activate
txtCPF.Value = c.Value
txtNome.Value = c.Offset(0, 1).Value
txtEndereco.Value = c.Offset(0, 2).Value
cboEstado.Value = c.Offset(0, 3).Value
cboCidade.Value = c.Offset(0, 4).Value
txtTelefone.Value = c.Offset(0, 5).Value
txtEmail.Value = c.Offset(0, 6).Value
txtNascimento.Value = c.Offset(0, 7).Value
Exit Sub

   Linha = Linha + 1

Loop

Else
MsgBox "Cliente não encontrado!"
End If
End With
Linha1:

End If
End Sub
    
asked by anonymous 28.06.2016 / 18:35

2 answers

1

@ ludehenrique2cia, notice that there are instructions that will not be accessed after " Exit Sub ", as in the excerpt copied below:

Exit Sub

Line = Line + 1

...

" Exit Sub " exits the routine at this point, then the instructions that follow it in the natural sequence of this part of the code will not execute (in the above case Linha = Linha + 1 will never be executed ).

    
28.06.2016 / 19:21
0

Try this:

Private Sub cmdPequisar_Click()

    'Verificar se foi digitado um nome na primeira caixa de texto
    If txtcpf.Text = "" Then
        MsgBox "Digite o CPF de um cliente"
        txtcpf.SetFocus

        Exit Sub

    End If

    With Worksheets("Dados Clientes").Range("A:A")

        Set c = .Find(txtcpf.Value, LookIn:=xlValues, LookAt:=xlPart)

        Do Until Sheets("Dados Clientes").Cells(0, 1) = ""

            If Sheets("Dados Clientes").Cells(0, 1) = txtcpf Then

                If Not c Is Nothing Then

                    c.Activate
                    txtcpf.Value = c.Value
                    txtNome.Value = c.Offset(0, 1).Value
                    txtEndereco.Value = c.Offset(0, 2).Value
                    cboEstado.Value = c.Offset(0, 3).Value
                    cboCidade.Value = c.Offset(0, 4).Value
                    txtTelefone.Value = c.Offset(0, 5).Value
                    txtEmail.Value = c.Offset(0, 6).Value
                    txtNascimento.Value = c.Offset(0, 7).Value

                    Exit Do

                    Linha = Linha + 1
                End If
            End If

        Loop

    End With

    If Trim$(txtcpf.Value) = "" Then
        MsgBox "Cliente não encontrado!"
    End If

End Sub
    
28.06.2016 / 22:55