Inquiridor
PESQUISAR ITEM EM UMA LISTBOX E SELECIONA-LO

Pergunta
-
Olá
Amigos tenho 4 listbox uma ao lado da outra onde são carregadas algumas informações de umas colunas especificas no excel.
Gostaria que ao selecionar um item da primeira listbox faça uma verificação junto as outras listbox SE Planilha1.Cells(linha, 2) for igual a algum conteudo carregado em uma listbox deixe selecionado este item na listbox.
Assim ao mudar a seleção da primeira listbox as outras automaticamente selecionassem os dados correspondentes a linha e coluna especifica.
Alguem poderia me dar uma mão até agora quebrei a cabeça mais não sei como bucar nem como selecionar algum item em uma listbox
Aguado e obrigado quem puder ajudar
Todas as Respostas
-
Acho que seria o ideal neste caso, voce disponibilizar um modelo do seu arquivo, para que possamos entender melhor o que quer fazer.
De qualquer forma, segue um exemplo um de um item selecionado no listbox.
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim j! Dim itemSelecionado As String With ListBox1 If .ListIndex <> -1 Then For j = 0 To .ColumnCount - 1 itemSelecionado = itemSelecionado & .Column(j) & vbCrLf Exit For Next j End If End With MsgBox itemSelecionado End Sub
- Editado Ricardo Vba terça-feira, 20 de fevereiro de 2018 18:12
-
Obrigado pela resposta, não há necessidade de disponibilizar o arquivo, se eu ver um jeito de buscar uma informação/item e linha (não sei se listbox trabalha com linha) e seleciona-lo ja vou conseguir fazer o que pretendo
deixa eu ver se entendi
With ListBox1 --- WITH ESTA MOSTRANDO QUE AS AÇÕES ABAIXO VÃO SER NESTE ListBox1??
If .ListIndex <> -1 Then --- LISTINDEX FALA QUE VAI VAZER AS VERIFICAÇÕES NAS
INFORMAÇÕES DENTRO DA ListBox1
For j (ESTA É UMA VARIAVEL?)= 0 To .ColumnCount - 1 itemSelecionado (ESTA É UMA VARIAVEL?)= itemSelecionado & .Column(j) & vbCrLf ESPECIALMENTE NA LINHA ACIMA NÃO ENTENDI ISTO --> .Column(j) & vbCrLf
Exit For Next j End If End With
Se puder responder essas minhas duvidas vou ficar muito grato
Obrigado
-
With ListBox1 --- WITH ESTA MOSTRANDO QUE AS AÇÕES ABAIXO VÃO SER NESTE ListBox1?
Sim isso para não ficar repetindo "ListBox1" a cada propriedade.
If .ListIndex <> -1 Then --- LISTINDEX FALA QUE VAI VAZER AS VERIFICAÇÕES NAS
O indice 0(zero) do Listbox, ou seja nada é o -1. Então esta é a condição para a próxima ação.
For j (ESTA É UMA VARIAVEL?)= 0 To .ColumnCount - 1 itemSelecionado (ESTA É UMA VARIAVEL?)= itemSelecionado & .Column(j) & vbCrLf ESPECIALMENTE NA LINHA ACIMA NÃO ENTENDI ISTO --> .Column(j) & vbCrLf
A variavel j inicia a partir do 0(zero) que é a 1ª coluna (indice) do listbox. ColumCount é o total de colunas. Se o laço iniciou do zero, por isso devemos referenciar com "-" (menus) 1.
.Column(j)
Referenciando a coluna, de acordo com a variavel "j"
vbCrLf
É uma quebra de linha, no caso somente para formatar a msgBox
-
Obrigado esclareceu bem, porem como eu estou trabalhando somente com linhas, e trabalho mais com Do While então confunde um pouco.
Poderia reescrever o codigo usando o Do While? por favor
assim eu entenderia bem a logica
Obrigado pela ajuda
-
Veja as alterações do meu exemplo, usando do while.
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim j!: j = 0 Dim itemSelecionado As String With ListBox1 If .ListIndex <> -1 Then Do While j <= .ListCount - 1 itemSelecionado = itemSelecionado & .Column(j) & vbCrLf Exit Do Loop End If End With MsgBox itemSelecionado End Sub
Click em propor como resposta se foi util a voce. ricardodm@outlook.com.br
-
reescrevendo no meu jeito de programar :) seria desta forma?
Dim linha As Integer linha = 3 Do While Planilha1.Cells(linha, 3) <> "" if Planilha1.Cells(linha, 3) = Listbox1.ListIndex then Listbox1.ListIndex.Select exit do End If linha = linha + 1 Loop
Seria desta forma?, pois ele teria que ver a coluna que esta verificando se condiz com a linha que eu selecionei na primeira listbox, se sim ele seleciona o item na listbox
Segue uma print do meu projeto
https://image.ibb.co/n5X6Hc/dawdawd.jpg
Note que só a primeira listbox esta selecionado, estes listbox são alimentados por dados buscados na mesma linha só que em colunas diferentes no excel.
gostaria usar este mesmo raciocinio para ele fazer uma comparação item por item na listbox verificando se o item condizer com a linha e coluna proposta então ira selecionado dentro da listbox
Aguardo e Muito obrigado mais uma vez
-
-