MACRO PREENCHER LISTBOX2 CLICANDO LISTA LISTBOX1

JSILVA 07/11/2015 13:16:04
#453600
Olá Pessoal preciso da ajuda de vocês, fiz diretamente na planilha um cadastramento de serviço e materiais correspondente a cada serviço, usando as próprias células para preenchimento dos dados e botões para salvar, porém também coloquei ListBox1 para visualizar os serviços já cadastrados e a ListBox2 para visualizar os itens de materiais correspondente para cada serviço, porém não estou conseguindo fazer com o que ao clicar em uma das linhas do ListBox1, isto é, selecionando um serviço, chamar o preenchimento da ListBox2 somente dos itens dos materiais cadastrado para aquele serviço selecionado na ListBox1.

Segue em anexo um modelo do que eu preciso.

JSILVA
ASHKATCHUP 12/11/2015 20:53:10
#453826
A solução é simples:


Private Sub ListBox1_Click()
Dim linha As Integer
Dim itenslistbox As Integer
[ô]
SetCampoCad
[ô]
Set LinhaProcBDAtiv = ShtBDAtiv.Columns([Ô]A:A[Ô]).Find(ShtCad.ListBox1, LOOKAT:=xlWhole)
[ô]
For a = 0 To 4
CampoCad(a) = LinhaProcBDAtiv.Offset(0, a).Value
Next

[ô]Limpa listbox2
ShtCad.ListBox2.Clear
linha = 1
itenslistbox = 0

While ShtBDMat.Cells(linha, 1) <> [Ô][Ô]
[ô]
[ô]A função TRIM retira espaços em branco antes depois do texto
If Trim(ShtBDMat.Cells(linha, 1).Value) = Trim(ShtCad.ListBox1.Value) Then
ShtCad.ListBox2.AddItem
[ô]
ShtCad.ListBox2.List(itenslistbox, 0) = ShtBDMat.Cells(linha, 2) [ô]número do item
ShtCad.ListBox2.List(itenslistbox, 1) = ShtBDMat.Cells(linha, 3) [ô]codigo
ShtCad.ListBox2.List(itenslistbox, 2) = ShtBDMat.Cells(linha, 4) [ô]descrição
ShtCad.ListBox2.List(itenslistbox, 3) = ShtBDMat.Cells(linha, 5) [ô]qte
ShtCad.ListBox2.List(itenslistbox, 4) = ShtBDMat.Cells(linha, 7) [ô]vr unit
ShtCad.ListBox2.List(itenslistbox, 5) = ShtBDMat.Cells(linha, 8) [ô]vr total
[ô]
itenslistbox = itenslistbox + 1
End If
[ô]
linha = linha + 1
Wend


End Sub
JSILVA 15/11/2015 10:33:35
#453925
ASHKATCHUP, bom dia, obrigado por me responder, era isso mesmo que esperava.

Valeu.
JSILVA 24/12/2015 20:42:54
#455528
Boa tarde, o código postado anteriormente deu certo, mas quando uso o código abaixo para quando selecionar o item do material na lista do listbox2 aparecendo os dados nos campos definidos (SetCampoCad) e tendo os registros diferentes e os números dos itens iguais, exemplo (Registro 1 Item 1, Registro 2 Item 1) , o código abaixo busca os dados somente do item 1 do primeiro cadastro mesmo estando selecionado o Registro 2.

  Private Sub ListBox2_Click()
SetCampoCad
Set LinhaProcBDMat = ShtBDMat.Columns([Ô]B:B[Ô]).Find(ShtCad.ListBox2, LOOKAT:=xlWhole)
For a = 4 To 10
CampoCad(a) = LinhaProcBDMat.Offset(0, a - 4).Value
Next
End Sub


Jsilva
Faça seu login para responder