Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
List box, procurar dados nacoluna B e retornar da coluna A
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Qui Ago 04, 2016 12:17 pm
List box, procurar dados nacoluna B e retornar da coluna A
Boa tarde.
De imediato, obrigado ao Mauro Coutinho pela resposta,
Estou novamente pedindo a ajuda, pois não deu certo a tentativa anterior, segue o caso:
Meu list box aparece o nome dos produtos a procurar, só que eu preciso que quando eu clicar no nome venha o código do produto.
o nome esta na coluna B e o código na coluna A.
Tentei mudar a linha ListBox1.AddItem .Cells(i, 2), mudando o numero 2 para um, mas quando eu fiz isso ele procura pelo código, preciso que ele procure pelo nome e retorne o número do código.
Estou mandando minha planilha anexo, nela não salvei as alterações, quando clico nas celulas da coluna A, ela abre o list box e procura pelo nome, mas não retorna o código, retorna o nome do produto.
Obrigado desde já.
De imediato, obrigado ao Mauro Coutinho pela resposta,
Estou novamente pedindo a ajuda, pois não deu certo a tentativa anterior, segue o caso:
Meu list box aparece o nome dos produtos a procurar, só que eu preciso que quando eu clicar no nome venha o código do produto.
o nome esta na coluna B e o código na coluna A.
Tentei mudar a linha ListBox1.AddItem .Cells(i, 2), mudando o numero 2 para um, mas quando eu fiz isso ele procura pelo código, preciso que ele procure pelo nome e retorne o número do código.
Estou mandando minha planilha anexo, nela não salvei as alterações, quando clico nas celulas da coluna A, ela abre o list box e procura pelo nome, mas não retorna o código, retorna o nome do produto.
Obrigado desde já.
- Anexos
-
- BUSCAR CÓDIGO.rar
- (49.05 KiB) Baixado 297 vezes
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: List box, procurar dados nacoluna B e retornar da coluna A
Alan, conforme citei no post anterior, para ter o Retorno da coluna A, tem de alterar:
ListBox1.AddItem .Cells(i, 2)
para
ListBox1.AddItem .Cells(i, 1)
mas, somente nesta linha dentro do For :
ListBox1.AddItem .Cells(i, 2)
Se alterar esta tambem : TextoCelula = .Cells(i, 2).Value, então estará referenciando a Coluna A.
Veja a rotina como deve ficar, ou seja comparando o Valor digitado no Textbox com os valores na Coluna B e retornando para o listbox o valor da coluna A.
[]s
ListBox1.AddItem .Cells(i, 2)
para
ListBox1.AddItem .Cells(i, 1)
mas, somente nesta linha dentro do For :
ListBox1.AddItem .Cells(i, 2)
Se alterar esta tambem : TextoCelula = .Cells(i, 2).Value, então estará referenciando a Coluna A.
Veja a rotina como deve ficar, ou seja comparando o Valor digitado no Textbox com os valores na Coluna B e retornando para o listbox o valor da coluna A.
Código: Selecionar todos
Private Sub PreencheLista()
Dim ws As Worksheet
Dim i As Integer
Dim TextoCelula As String
Dim sRg As Range
Dim ultLin
Dim c As Range
Set ws = ThisWorkbook.Worksheets(1)
'Captamos a última linha na Coluna A
ultLin = ws.Range("A" & Rows.Count).End(xlUp).Row
'Definimos o Range de A2 até A & ultima linha
'Se quiser definir a coluna B é só alterar a letra, mas tem de ajustar as linhas de comparação no For
Set sRg = ws.Range("A2" & ":" & "A" & ultLin)
i = 1
ListBox1.Clear
With ws
'Para cada Valor definido no Range da Coluna A
For Each c In sRg
TextoCelula = .Cells(i, 2).Value 'Armazena o Valor na Coluna 2 (B)
'Compara se o Valor da coluna 2 (B) é igual ao digitado no textbox
If InStr(1, UCase(TextoCelula), UCase(TextoDigitado), vbTextCompare) Then
'ListBox1.AddItem .Cells(i, 2) 'Retorna o valor da coluna 2 (B)
ListBox1.AddItem .Cells(i, 1) 'Retorna o valor da coluna 1 (A)
End If
i = i + 1
Next c
End With
End Sub
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Qui Ago 04, 2016 12:17 pm
List Box, mostrar o nome dos produtos e retorna o código do produto
Boa tarde,
Mauro, entendi a fórmula, porém, tem como mostrar na list box o valor da coluna B, e retornar o valor da coluna A
é que da forma como você passou, ela procura na coluna B, porém ela não mostra os nomes, só aparece os códigos. Neste caso eu não saberia qual o código do produto.
Preciso que apareça na list box a descrição do produto. e retorne o código.
Pois eu tenho mais de um produto com nome parecido, e eu buscaria com qualquer parte do nome.
Tipo tenho ração Quidog Plus, Quidog filhote, quidog premium, special dog premium, super dog filhote, então são nome parecidos.
Por isso que ele tem que aparecer os nomes para eu saber qual o produto certo, mas quando eu escolher preciso que ele retorne o código.
Na solução apresentada, ele mostra os códigos na list box, então não tem como eu saber qual é o produto que eu quero. pois eu deveria escrever o nome inteiro e de forma correta, e como é mais de uma pessoa que usa a planilha, não saberia qual foi a forma como foi escrito.
Mauro, entendi a fórmula, porém, tem como mostrar na list box o valor da coluna B, e retornar o valor da coluna A
é que da forma como você passou, ela procura na coluna B, porém ela não mostra os nomes, só aparece os códigos. Neste caso eu não saberia qual o código do produto.
Preciso que apareça na list box a descrição do produto. e retorne o código.
Pois eu tenho mais de um produto com nome parecido, e eu buscaria com qualquer parte do nome.
Tipo tenho ração Quidog Plus, Quidog filhote, quidog premium, special dog premium, super dog filhote, então são nome parecidos.
Por isso que ele tem que aparecer os nomes para eu saber qual o produto certo, mas quando eu escolher preciso que ele retorne o código.
Na solução apresentada, ele mostra os códigos na list box, então não tem como eu saber qual é o produto que eu quero. pois eu deveria escrever o nome inteiro e de forma correta, e como é mais de uma pessoa que usa a planilha, não saberia qual foi a forma como foi escrito.
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: List box, procurar dados nacoluna B e retornar da coluna A
Alan, não cheguei a ver seu modelo, a rotina passada foi de acordo com o que você solicitou, pesquisar por produto e retornar o código, agora se quer o retorno de código e descrição tem de acrescentar formato para duas colunas e e a propriedade List :
ColumnCount = 2
ListBox1.List(1, 1)=Cells(i, 2)
No momento não tenho como baixar seu modelo, mas de uma olhada na propria ajuda do VBA referente a ListBox e acredito ficará mais fácil entender, ou pesquise no forum como preencheer listbox, se não conseguir, assim que possivel dou uma olhada.
[]s
ColumnCount = 2
ListBox1.List(1, 1)=Cells(i, 2)
No momento não tenho como baixar seu modelo, mas de uma olhada na propria ajuda do VBA referente a ListBox e acredito ficará mais fácil entender, ou pesquise no forum como preencheer listbox, se não conseguir, assim que possivel dou uma olhada.
[]s
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: List box, procurar dados nacoluna B e retornar da coluna A
Alan, com as informações postadas no outro Forum (http://www.planilhando.com.br/forum/vie ... 10&t=21676) e analisando com mais calma seu modelo, cheguei a entender o que está querendo, só que no meu entendimento, para que a pesquisa com a digitação no textbox temos de mudar o layout de seu modelo, explicando :
Resolvida a questão das linhas em BRANCO, você está utilizando a mesma rotina que carrega o listbox para a pesquisa, e com isto tem problemas, então coloquei rotina separada, e tambem, como a pesquisa é realizada pela coluna B, na mesma temos os titulos, o que não tem como ignorar e desta forma os itens ficam embaralhados no listbox.
De uma olhada no modelo com os ajustes e veja se ajuda.
Pesquisar e Lançar Itens Listbox Qualquer duvida retorne, e na medida do possivel vamos ajudando.
[]s
Resolvida a questão das linhas em BRANCO, você está utilizando a mesma rotina que carrega o listbox para a pesquisa, e com isto tem problemas, então coloquei rotina separada, e tambem, como a pesquisa é realizada pela coluna B, na mesma temos os titulos, o que não tem como ignorar e desta forma os itens ficam embaralhados no listbox.
De uma olhada no modelo com os ajustes e veja se ajuda.
Pesquisar e Lançar Itens Listbox Qualquer duvida retorne, e na medida do possivel vamos ajudando.
[]s
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Qui Ago 04, 2016 12:17 pm
Re: List box, procurar dados nacoluna B e retornar da coluna A
Mauro valeu mais uma vez. Nesse arquivo que você mandou deu um erro em " For A ", não sei o que é.
Porém a solução do Osvaldomp resolveu meu problema como disse no outro tópico, segue resolução do problema feita pelo Osvaldomp,
Substitua o seu código pelo código abaixo.
CÓDIGO: SELECIONAR TODOS
Private Sub ListBox1_Click()
Dim c As Long
c = Sheets("ESTOQUE").Columns(2).Find(ListBox1.Value).Row
ActiveCell.Value = Sheets("ESTOQUE").Cells(c, 1)
Unload Me
End Sub
sugestão - acrescente o comando Cancel = True no seu código que está no módulo da planilha "DIA 31", conforme abaixo, assim a célula clicada sai do modo edição
CÓDIGO: SELECIONAR TODOS
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Column = 1 Then UserForm1.Show
End Sub
Osvaldo
Volto a repetir, parabéns a todos que com seus conhecimentos ajudam o próximo.
Muito obrigado.
Porém a solução do Osvaldomp resolveu meu problema como disse no outro tópico, segue resolução do problema feita pelo Osvaldomp,
Substitua o seu código pelo código abaixo.
CÓDIGO: SELECIONAR TODOS
Private Sub ListBox1_Click()
Dim c As Long
c = Sheets("ESTOQUE").Columns(2).Find(ListBox1.Value).Row
ActiveCell.Value = Sheets("ESTOQUE").Cells(c, 1)
Unload Me
End Sub
sugestão - acrescente o comando Cancel = True no seu código que está no módulo da planilha "DIA 31", conforme abaixo, assim a célula clicada sai do modo edição
CÓDIGO: SELECIONAR TODOS
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Column = 1 Then UserForm1.Show
End Sub
Osvaldo
Volto a repetir, parabéns a todos que com seus conhecimentos ajudam o próximo.
Muito obrigado.