Trabalhando com objetos no Excel - ListView | Excelmax Soluções e Controles

quarta-feira, abril 04, 2012

Trabalhando com objetos no Excel - ListView

Objeto ListView

excel
Em postagens anteriores: Utilizando o Objeto ComboBox preenchido no Excel e Trabalhando com Objetos no Excel - ComboBox vimos como utilizar e preencher o objeto ComboBox.
Outro objeto de grande importância que podemos utilizar na criação de algumas soluções no Excel é o 'ListView'.


listview, excel, macro
Este objeto é muito parecido com o ListBox, porém, possuindo algumas funcionalidades a mais. Ele serve como uma tabela (grid) facilitando a leitura/visualização dos dados.

O objeto listview pode ser preenchido automaticamente quando o formulário é executado ou quando o formulário já estiver em uso.






As colunas do listview devem ser definidas na inicialização do userform (formulário) conforme o código a seguir:

    Private Sub Userform_Inicialize()
        With listview1
            .Gridlines = True
            .View = lvwReport
            .FullRowSelect = True          
            .ColumnHeaders.Add Text:="ID", Width:=20      'ID= Nome da 1ª coluna
            .ColumnHeaders.Add Text:="País", Width:=50    'País=Nome da 2ª coluna
            .ColumnHeaders.Add Text:="UF", Width:=60     'UF= Nome da 3ª coluna
        End With
    End Sub 
listview, excel, macro


Quando o formulário (userform) for executado, o código acima que é colocado no evento Inicialize, é executado e as colunas são criadas no listview. A seguir, uma breve explicação de alguns itens que compõe o código:

Gridlines: Exibe/oculta linhas de grade.
View: Estilo da exibição.
FullRowSelect: Seleção de linha.
Width: Largura da coluna.
  




Para fazer o preenchimento da listview com informações (referente a cada coluna), podemos utilizar o código a seguir:

    Private Sub UserForm_Initialize()
        With ListView1

            .Gridlines = True
            .View = lvwReport
            .FullRowSelect = True
            .ColumnHeaders.Add Text:="ID", Width:=20      'ID= Nome da 1ª coluna
            .ColumnHeaders.Add Text:="País", Width:=50    'País= Nome da 2ª coluna
            .ColumnHeaders.Add Text:="UF", Width:=60    'UF= Nome da 3ª coluna
        End With

        lastRow = Plan1.Cells(Rows.Count, "a").End(xlUp).Row
        'Adiciona itens
        For X = 2 To lastRow
            Set li = ListView1.ListItems.Add(Text:=Plan1.Cells(X, "a").Value)
            li.ListSubItems.Add Text:=Plan1.Cells(X, "b").Value
            li.ListSubItems.Add Text:=Plan1.Cells(X, "c").Value
        Next

    End Sub
listview, excel, macro

Quando o formulário (userform) for executado, o código acima que é colocado no evento Inicialize, é executado e as informações são inseridas nas colunas do listview. A seguir, uma breve explicação de alguns itens que compõe o código:

lastRow: Variável que conta os itens.
li: Variável que representa o listview.


A partir das explicações acima, o objeto listview pode ser facilmente utilizado em qualquer projeto do Excel.

Link para download da planilha exemplo: Utilizando o Objeto ListView no Excel

Numa próxima postagem estarei explicando mais detalhes de como configurar e utilizar este objeto de forma mais dinâmica.

Os endereços (links) a seguir, direcionam você a postagens escritas anteriormente que dão mais algumas explicações e demonstram como este objeto pode ser utilizado: 
Confira também:
Compartilhe esta e outras postagens deste Site com seus amigos.

Obrigado por sua visita e até a próxima postagem!

Professor Ivair Claudio Ferrari.

3 comentários:

  1. Gostei muito da maneira como explicou.

    ResponderExcluir
  2. Estou querendo desenvolver uma planilha VBA, como se fosse um programa simples, de controle de contratos, onde pudéssemos controlar a vigência do contrato ( e gerasse aviso ao se aproximar do vencimento ), bem como do valor do contrato, dando saldo automático, após um pagamento parcial, etc. É viável construir isso, em um só programa (planilha de excel) ou não? POr onde devo começar?

    Érison Barros ( erisonbarros@gmail.com )

    ResponderExcluir
  3. Ivair, muito obrigado por estas grandes aulas que nos prestigia, gostaria de saber se pode me ajudar com o seguinte problema, tenho uma primeira planilha com as colunas: NºNF, FORNECEDOR, DATA DE EMISSÃO, VALOR TOTAL, PRAZO DE PAGAMENTO. dai em outra planilha eu tenho os produtos dessa nota fiscal, as colunas sao: NºNF, PRODUTO, QUANTIDADE, VALOR UNIT, VALOR TOTAL, CENTRO DE CUSTO, APLICACAO, SETOR. O que eu precisaria é uma listview com os seguintes filtros, similar as listview que vc tem no cadclifor para consulta de fornecedores, clientes,transportadoras; os filtros seriam, NºNF, ou FORNECEDOR ou DATA DE EMISSÃO INICIAL E FINAL ou PRODUTO, ou CENTRO DE CUSTO ou APLICACAO ou SETOR, detalhe tenho outras planilhas com cadastro de fornecedores, produtos, centro de custo, setor, aplicação; gostaria que esses filtros tambem pudessem ser combinados entre si, por exemplo selecionar o FORNECEDOR e também o centro de custo, outro exemplo selecionar CENTRO DE CUSTO, APLICAÇÃO, SETOR E INTERVALO DE DATAS, pra mim isso não parece ser dificil, mas estou começando com vb agora, não tenho ideia por onde começar, poderia me dar uma ajuda?

    ResponderExcluir

Seja um participante desta comunidade !
Deixe aqui seu comentário e/ou sugestão.
Obrigado !

Ivair Claudio Ferrari