Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por SandroLima
#37724
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.
Você não está autorizado a ver ou baixar esse anexo.
Por SandroLima
#37730
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?
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord