Notifications
Clear all

Preenchimento de Listbox

3 Posts
2 Usuários
0 Reactions
949 Visualizações
(@robertonl)
Posts: 121
Estimable Member
Topic starter
 

Boa tarde.
Teria como alguém ajudar-me a solucionar este código.
Desejaria digitar qualquer letra no textbox e preencher a listbox.

Private Sub PesquisaFornecedor_Change()
 LstFornecedor.Clear
 valor_pesquisa = PesquisaFornecedor.Text

    Dim guia As Worksheet
    Dim linha As Integer
    Dim coluna As Integer
    Dim linhalistbox As Integer
    Dim valor_celula As String
    Dim soma As Double
    
    Set guia = ThisWorkbook.Worksheets("fornecedor")
    
    linhalistbox = 0
    linha = 2 'linha de inicio dos dados
    coluna = 2 'coluna referente busca de produtos
    
    'LstFornecedor.Clear
    
    'guia.Select
     
    With guia
        While .Cells(linha, coluna).Value <> Empty 'enquanto for diferente de vazio faça
            
            valor_celula = .Cells(linha, coluna).Value 'recebe o valor da célula para fazer o teste
            
            'Condição para satisfazer a busca tem que ser igual ao valor da texbox3
            If UCase(Left(valor_celula, Len(valor_pesquisa))) = UCase(valor_pesquisa) Then
            
            'adiciona itens a listbox
            With LstFornecedor
            .AddItem
            .List(linhalistbox, 0) = guia.Cells(linha, 1)
            .List(linhalistbox, 1) = guia.Cells(linha, 2)
            .List(linhalistbox, 2) = guia.Cells(linha, 3)
            .List(linhalistbox, 3) = guia.Cells(linha, 4)
            
              
            End With
            linhalistbox = linhalistbox + 1
            
            End If
            
            linha = linha + 1
    
        Wend
    
    End With

   

   End Sub
 
Postado : 08/01/2018 12:16 pm
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
 

Boa tarde!

Veja se é isso que deseja.

Abraços!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 08/01/2018 1:28 pm
(@robertonl)
Posts: 121
Estimable Member
Topic starter
 

Leandro, boa tarde.
Desta maneira que você repassou, funcionou perfeitamente.
Porém incrementando outros formulários na planilha, a parte para fazer o recebimento está dando um erro.
O processo de funcionamento da planilha é a seguinte:
Guia ForMatPri armazena Codigo do Produto, Nome do Produto, Unidade de Medida, Codigo do Fornecedor e Nome do Fornecedor.
Ao lançar o recebimento de mercadoria, quando digita o nome do produto, na caixa de listagem ele preenche os dados da guia formatpri, e ao clicar em cima do produto desejado, ele preenche os textbox.
Segue o arquivo em anexo

Private Sub Pesquisa_Change()
 
 valor_pesquisa = Pesquisa.Text

    Dim guia As Worksheet
    Dim linha As Integer
    Dim coluna As Integer
    Dim linhalistbox As Integer
    Dim valor_celula As String
    'Dim linhalistbox As String
    'Dim coluna As String
    'Dim linha As String
    Set guia = ThisWorkbook.Worksheets("ForMatPrim")
    
    linhalistbox = 0
    linha = 2 'linha de inicio dos dados
    coluna = 2 'coluna referente busca de produtos
    
    InfoMatPrima.Clear
    
    'guia.Select
     
    With guia
        While .Cells(linha, coluna).Value <> Empty 'enquanto for diferente de vazio faça
            
            valor_celula = .Cells(linha, coluna).Value 'recebe o valor da célula para fazer o teste
            
            'Condição para satisfazer a busca tem que ser igual ao valor da texbox3
            If InStr(UCase(valor_celula), UCase(valor_pesquisa)) <> Empty Then
            
            With InfoMatPrima
            .AddItem
            .List(linhalistbox, 0) = guia.Cells(linha, 1)
            .List(linhalistbox, 1) = guia.Cells(linha, 2)
            .List(linhalistbox, 2) = guia.Cells(linha, 3)
            '.List(linhalistbox, 3) = guia.Cells(linha, 4)
            '.List(linhalistbox, 3) = guia.Cells(linha, 5)
            
              
            End With
            linhalistbox = linhalistbox + 1
            
            End If
            
            linha = linha + 1
    
        Wend
    
    End With

   

   End Sub

 
Postado : 09/01/2018 11:54 am