none
Rotina que pesquisa e edita RRS feed

  • Pergunta

  • Pessoal, alguém ajuda criar uma rotina inteligente para pesquisar os cadastro realizados na planilha e que eu possa editalos?

    ComboBox1, vai mostrar  todos os cadastro apenas pelas IDs cadastradas.

    E ao selecionar a ID, vai repetir o ID no campo TextBox11

    Feito isso, todos os dados dessa ID, vem para os campos abaixo, conforme a ilustração da print.

    E por fim, o botão editar vai salvar no mesmo cadastro as alterações que eu fizer.

    Eu estava usando essa linha de raciocínio abaixo, mas n tava dando certo

    Private Sub combobox1_Click()
    
    localdemon = Worksheets("CPFeCNPJ").UsedRange.Rows.Count
    For i = 0 To localdemon
    
    If combobox1.ListIndex = i Then
    
    texbox1= Cells(i + 2, 1)
    textbox2 = Cells(i + 2, 1)
    textbox3= Cells(i + 2, 2)
    textbox4 = Cells(i + 2, 3)
    textbox5= Cells(i + 2, 4)
    textbox6= Cells(i + 2, 5)
    
    Exit Sub
    
    End If
    
    Next
    
    End Sub
    

    quinta-feira, 11 de abril de 2019 18:41

Respostas

  • Olá, julianorsilverio! Tente seguir essa lógica que implementei! Fiz mais simples porém a lógica é a mesma para cada compo!

    Private Sub ComboBox1_Change()
        Dim id As String
        Dim cellId As Range
        id = ComboBox1.Value
        
        'Obtem a linha da ID escolhida
        Set cellId = Range("A2:A4").Find(id)
        
        'Carrega o nome e o sobrenome
        TextBoxNome.Text = Range("B" & CStr(cellId.Row) & ":B" & CStr(cellId.Row))
        TextBoxSobrenome.Text = Range("C" & CStr(cellId.Row) & ":C" & CStr(cellId.Row))
    End Sub
    
    Private Sub CommandButtonSalvar_Click()
        Dim id As String
        Dim cellId As Range
        id = ComboBox1.Value
        
        Set cellId = Range("A2:A4").Find(id)
        
        Call Salvar(CStr(cellId.Row), TextBoxNome.Text, TextBoxSobrenome.Text)
        
    End Sub
    
    Private Sub UserForm_Initialize()
        'Carregando dados na combobox
        ComboBox1.List = ActiveWorkbook.Sheets("Sheet1").Range("A2:A4").Value
    End Sub
    
    Private Sub Salvar(rowId As String, nome As String, sobrenome As String)
        Range("B" & rowId & ":B" & rowId).Value = nome
        Range("C" & rowId & ":C" & rowId).Value = sobrenome
    End Sub
    
    Antes de editar

    Depois de editar


    “First do it, then do it right, then do it better.” - Addy Osmani

    • Sugerido como Resposta LeonardoBastos sexta-feira, 12 de abril de 2019 02:37
    • Marcado como Resposta julianorsilverio sexta-feira, 12 de abril de 2019 17:44
    quinta-feira, 11 de abril de 2019 23:25

Todas as Respostas

  • Olá, julianorsilverio! Tente seguir essa lógica que implementei! Fiz mais simples porém a lógica é a mesma para cada compo!

    Private Sub ComboBox1_Change()
        Dim id As String
        Dim cellId As Range
        id = ComboBox1.Value
        
        'Obtem a linha da ID escolhida
        Set cellId = Range("A2:A4").Find(id)
        
        'Carrega o nome e o sobrenome
        TextBoxNome.Text = Range("B" & CStr(cellId.Row) & ":B" & CStr(cellId.Row))
        TextBoxSobrenome.Text = Range("C" & CStr(cellId.Row) & ":C" & CStr(cellId.Row))
    End Sub
    
    Private Sub CommandButtonSalvar_Click()
        Dim id As String
        Dim cellId As Range
        id = ComboBox1.Value
        
        Set cellId = Range("A2:A4").Find(id)
        
        Call Salvar(CStr(cellId.Row), TextBoxNome.Text, TextBoxSobrenome.Text)
        
    End Sub
    
    Private Sub UserForm_Initialize()
        'Carregando dados na combobox
        ComboBox1.List = ActiveWorkbook.Sheets("Sheet1").Range("A2:A4").Value
    End Sub
    
    Private Sub Salvar(rowId As String, nome As String, sobrenome As String)
        Range("B" & rowId & ":B" & rowId).Value = nome
        Range("C" & rowId & ":C" & rowId).Value = sobrenome
    End Sub
    
    Antes de editar

    Depois de editar


    “First do it, then do it right, then do it better.” - Addy Osmani

    • Sugerido como Resposta LeonardoBastos sexta-feira, 12 de abril de 2019 02:37
    • Marcado como Resposta julianorsilverio sexta-feira, 12 de abril de 2019 17:44
    quinta-feira, 11 de abril de 2019 23:25
  • Muito obrigado Leonardo! Funcionou perfeitamente, mesmo que seja simples ou não, o que importa é dar certo.

    Obrigado mesmo!

    sexta-feira, 12 de abril de 2019 17:44


  • “First do it, then do it right, then do it better.” - Addy Osmani

    Caso seja uma botão que vai excluir todo o cadastro, ou seja, a linha toda e a sua id. Quando clico no botão, nada acontece mas não da erro

    Dim id As String
        Dim cellId As Range
        id = ComboBox1.Value
        
        'Obtem a linha da ID escolhida
        Set cellId = Range("A2:A5000").Find(id)
        
        For i = 2 To cellId
            If Range("A" & i).Value = ComboBox1.Value Then
                Resposta = MsgBox("Os dados de " & Range("A" & i).Value & " serão apagados do cadastro e não tem como serem recuperados! Deseja prosseguir com a Exclusão?", vbYesNo + vbQuestion, "EXCLUSÃO DE CADASTRO")
                If Resposta = 11 Then
                    Range("A" & i).Value = ""
                    Range("B" & i).Value = ""
                    Range("C" & i).Value = ""
                    Range("D" & i).Value = ""
                    Range("E" & i).Value = ""
                    Range("F" & i).Value = ""
                    Range("G" & i).Value = ""
                    Range("H" & i).Value = ""
                    Range("I" & i).Value = ""
                    Range("J" & i).Value = ""
                    Range("K" & i).Value = ""
                    MsgBox "As informações foram Excluídas!", vbDefaultButton1, "Exclusão"
                    Exit For
                End If
            End If
        Next
        


    sexta-feira, 12 de abril de 2019 19:13
  • Olá, PriscilaBenevente!

    Se for para excluir o cadastro selecionado, pode fazer assim (pode ficar melhor). Eu adicionei um botão de excluir e chamei a sub de excluir

    Private Sub ComboBox1_Change()
        Dim id As String
        Dim cellId As Range
        id = ComboBox1.Value
        
        'Obtem a linha da ID escolhida
        Set cellId = Range("A2:A5000").Find(id)
        
        'Carrega o nome e o sobrenome
        TextBoxNome.Text = Range("B" & CStr(cellId.Row) & ":B" & CStr(cellId.Row))
        TextBoxSobrenome.Text = Range("C" & CStr(cellId.Row) & ":C" & CStr(cellId.Row))
    End Sub
    
    Private Sub CommandButtonExcluir_Click()
        Dim id As String
        Dim cellId As Range
        id = ComboBox1.Value
        
        Set cellId = Range("A2:A5000").Find(id)
        
        Dim resultado As VbMsgBoxResult
        resultado = MsgBox("Quer Excluir?", vbYesNo + vbQuestion, "Exclusão")
        If resultado = vbYes Then
            Call Excluir(CStr(cellId.Row))
        End If
        
    End Sub
    
    Private Sub Excluir(rowId As String)
        'Limpa os dados
        Range("A" & rowId & ":A" & rowId).Value = ""
        Range("B" & rowId & ":B" & rowId).Value = ""
        Range("C" & rowId & ":C" & rowId).Value = ""
        
        'Limpa os campos
        TextBoxNome.Text = ""
        TextBoxSobrenome.Text = ""
        
        'Recarrega a combo
        ComboBox1.List = ActiveWorkbook.Sheets("Sheet1").Range("A2:A50000").Value
    End Sub
    
    Private Sub CommandButtonSalvar_Click()
        Dim id As String
        Dim cellId As Range
        id = ComboBox1.Value
        
        Set cellId = Range("A2:A4").Find(id)
        
        Call Salvar(CStr(cellId.Row), TextBoxNome.Text, TextBoxSobrenome.Text)
        
    End Sub
    
    Private Sub UserForm_Initialize()
        'Carregando dados na combobox
        ComboBox1.List = ActiveWorkbook.Sheets("Sheet1").Range("A2:A50000").Value
    End Sub
    
    Private Sub Salvar(rowId As String, nome As String, sobrenome As String)
        Range("B" & rowId & ":B" & rowId).Value = nome
        Range("C" & rowId & ":C" & rowId).Value = sobrenome
    End Sub


    “First do it, then do it right, then do it better.” - Addy Osmani


    sexta-feira, 12 de abril de 2019 23:07