Estou com um grande problema. Andei olhando alguns códigos para montar um sistema de cadastro, estou barrando na hora de inserir linha de dados de uma listbox no formulário para editar o conteúdo posteriormente.
Quero ao selecionar a linha aparecer nos campos "valor" e "pago", referente às colunas 9 e 10 da planilha, as informações para editar. São os únicos item que poderão ser editados e salvos na mesma planilha e no mesmo registro ( não deve ser criado o novo registro). E depois atualizar a o listbox.
Segue abaixo todo meu projeto anexo
Desde já agradeço
Código: Selecionar todos
Option Explicit
Private Sub ComboCid_Change()
txt2.SetFocus
End Sub
'Filtro personalizado com uma combobox e uma caixa de texto
Private Sub txt2_Change()
Dim linhalistbox As Long, c As Range
Dim guia As Worksheet: Set guia = ActiveSheet
ListBox4.Clear
guia.[A1:J1].AutoFilter Field:=3, Criteria1:=ComboCid.Text
For Each c In guia.Range("H2:H" & guia.Cells(Rows.Count, 10).End(3).Row).SpecialCells(12)
If Left(c.Value, Len(txt2.Text)) = txt2.Text Then
With ListBox4
.AddItem
.List(linhalistbox, 0) = guia.Cells(c.Row, 1)
.List(linhalistbox, 1) = guia.Cells(c.Row, 2)
.List(linhalistbox, 2) = guia.Cells(c.Row, 3)
.List(linhalistbox, 3) = guia.Cells(c.Row, 4)
.List(linhalistbox, 4) = guia.Cells(c.Row, 5)
.List(linhalistbox, 5) = guia.Cells(c.Row, 6)
.List(linhalistbox, 6) = guia.Cells(c.Row, 7)
.List(linhalistbox, 7) = guia.Cells(c.Row, 8)
.List(linhalistbox, 8) = guia.Cells(c.Row, 9)
.List(linhalistbox, 9) = guia.Cells(c.Row, 10)
End With
linhalistbox = linhalistbox + 1
End If
Next c
guia.AutoFilterMode = False
End Sub
Private Sub UserForm_Initialize()
Plan1.Select
Dim Rng As Range, Dn As Range, AL As Object
With ActiveSheet
Set Rng = .Range(.Range("C2"), .Range("C" & Rows.Count).End(xlUp))
End With
Set AL = CreateObject("System.Collections.ArrayList")
For Each Dn In Rng
If Not AL.Contains(Dn.Value) Then AL.Add Dn.Value
Next Dn
AL.Sort
' id do usuario que será relacionado na pesquisa
With ComboCid
.Clear
.List = AL.ToArray
End With
End Sub