Página 1 de 1

Correção erro botão alterar

Enviado: 12 Out 2018 às 13:45
por SandroLima
Boa tarde, pessoal

Tenho o código que me retorna todas as informações das textbox (preenche as textbox) através do botão pesquisar... preciso agora de ajuda para ajustar o seguinte código do botão alterar que permite fazer alteração dos campos da linha da tabela de cadastro em que foi encontrada o valor procurado
Código: Selecionar todos
Private Sub cmb_Alterar_Click()

    Application.ScreenUpdating = False
    
    Dim Tabela As ListObject
    Dim Nome As String
            
    Set Tabela = wsh_Cadastro.ListObjects("TB_Cadastro")
    Nome = Frm_Cadastro.txt_Nome.Value
    
    Dim Linha As Long
        With Tabela.DataBodyRange
            Linha = .Rows.Count
        End With
    
    Do Until CStr(Tabela.ListRows(Linha).range(Linha, 4)) = Nome
        Linha = Linha + 1
    Loop
    
        Me.txt_Cadastro.Value = Tabela.range(Linha, 1).Value
        Me.txt_Data = Tabela.range(Linha, 2).Value
        Me.txt_ID = Tabela.range(Linha, 3).Value
        Me.txt_Nome = Tabela.range(Linha, 4).Value
        Me.cbb_Sexo = Tabela.range(Linha, 5).Value
        Me.txt_DataNasc = Tabela.range(Linha, 6).Value
        Me.cbb_EstadoCivil = Tabela.range(Linha, 8).Value
        Me.txt_CPF = Tabela.range(Linha, 9).Value
        
    Set Tabela = Nothing
    
    LimparCampos
    
    ActiveWorkbook.Save
    
    MsgBox "Alteração realizada com sucesso!", vbExclamation, "Cadastro"
   
    ' Msgbox solicitando a confirmação da alteração
               
End Sub
Por enquanto o problema detectado foi aqui:
Código: Selecionar todos
Do Until CStr(Tabela.ListRows(Linha).range(Linha, 4)) = Nome
Podem me ajudar na correção/finalização do código?

Ou se souberem de uma rotina melhor.... Não sei se a melhor opção dessa localização de linha seria o CPF já que o cliente pode ter o nome igual ao de outro (raro mas pode acontecer)... porém tem cadastros que não tem CPF (no caso de uma criança por exemplo).

Muito obrigado.

Re: Correção erro botão alterar

Enviado: 13 Out 2018 às 15:07
por SandroLima
Boa tarde, pessoal

Cheguei nessa linha de raciocínio para o botão alterar de uma tabela de cadastro:
Código: Selecionar todos
Private Sub cmb_Alterar_Click()
    
    Application.ScreenUpdating = False
       
    Dim Tabela As ListObject
    Dim NCad As Long
    
    Set Tabela = wshCadastro.ListObjects("TB_Pacientes")
    NCad = frm_Cadastro.txt_Cadastro.Value
    
    Tabela.ListRows(1).Range(1, 1).Select
    
    Do While ActiveCell.Value <> "" 'Percorre todas as células da coluna 1 da tabela "TB_Cadastro"
        If ActiveCell.Value = NCad Then
            Tabela.ListRows(ActiveCell).Range(0, 1) = Me.txt_Data.Value
            Tabela.ListRows(ActiveCell).Range(0, 2) = Me.cbb_Profissao.Value
                       MsgBox "Cadastro alterado com sucesso!"
            Exit Do
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
           
    Set Tabela = Nothing
    
    wshCadastro.Select
                  
    Application.ScreenUpdating = True
    
End Sub
Essa parte é para ilustrar o que preciso que é localizar a linha onde se encontra o valor procurado.
Código: Selecionar todos
Tabela.ListRows(ActiveCell).Range(0, 1) = Me.txt_Data.Value
Seria a linha referente ao ActiveCell. Como faço para achar o número da linha. O valor procurado o código localiza com o loop mas como definir a linha para substituir a expressão "ActiveCell" da linha de comando acima?

Podem me ajudar?

Re: Correção erro botão alterar

Enviado: 16 Out 2018 às 13:00
por SandroLima
Boa tarde.

Alguém pode ajudar?