none
Preencher ListBox RRS feed

  • Pergunta

  • Pessoal, bom dia.

    Tenho o seguinte código para preenchimento de uma listbox de acordo com alguns critérios.
    Minha dificuldade está em preencher o cabeçalho.

    ub Pesquisar()
    
    valor_pesq = frmPesquisa.txtID.Text
    
        Dim guia As Worksheet
        Dim linha As Integer
        Dim coluna As Integer
        Dim linhalistbox As Integer
        Dim valor_celula As String
        Dim conta_registros As Integer
        
        Set guia = ThisWorkbook.Worksheets(5)
                   
        If frmPesquisa.txtID <> "" Then
        coluna = 5
        
        ElseIf frmPesquisa.cbxAgente <> "" Then
        coluna = 6
        
        Else
        coluna = 7
        
        End If
        
            
        linhalistbox = 0
        conta_registros = 0
        linha = 4
         
        frmDados.lstHistorico.Clear
        
        Sheets("Base_de_Dados").Select
         
        With guia
            While .Cells(linha, coluna).Value <> Empty
                valor_celula = .Cells(linha, coluna).Value
                
                If UCase(Left(valor_celula, Len(valor_pesq))) = UCase(valor_pesq) Then
                    
                 With frmDados.lstHistorico
                 .AddItem
                 .List(linhalistbox, 0) = Sheets("Base_de_Dados").Cells(linha, 2)
                 .List(linhalistbox, 1) = Sheets("Base_de_Dados").Cells(linha, 3)
                 .List(linhalistbox, 2) = Sheets("Base_de_Dados").Cells(linha, 5)
                 .List(linhalistbox, 3) = Sheets("Base_de_Dados").Cells(linha, 6)
                 .List(linhalistbox, 4) = Sheets("Base_de_Dados").Cells(linha, 7)
                 .List(linhalistbox, 5) = Sheets("Base_de_Dados").Cells(linha, 9)
                 .List(linhalistbox, 6) = Sheets("Base_de_Dados").Cells(linha, 10)
                                           
                  linhalistbox = linhalistbox + 1
                  End With
                  conta_registros = conta_registros + 1
                 
                End If
                linha = linha + 1
            Wend
        End With
        
     End Sub
    

    sábado, 2 de abril de 2016 16:33

Respostas

  • Matheus,

    No Excel não dá pra você definir o valor dos cabeçalhos se você "monta" sua listbox/combobox com valores adicionados pele código.

    Pra usar o cabeçalhos os valores devem estar numa planilha. Você define, na propriedade RowSource, o intervalo dos dados (sem incluir a linha do cabeçalho), que o Excel pega a linha de cima do intervalo como cabeçalho, por exemplo:

    Plan1!A2:C:10

    Pra tudo funcionar você define antes o columncount e columnheades.

    Se for necessário mesmo ter cabeçalhos na lista, eu sugiro você colocar numa guia oculta todos os dados que você quer na lista e referenciá-lo para que tudo apareça.

    Qualquer dúvida entre em contato.

    Alexandre

    • Marcado como Resposta matmendes quarta-feira, 13 de abril de 2016 18:02
    sábado, 2 de abril de 2016 20:41