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

sábado, abril 07, 2012

Trabalhando com Objetos no Excel - ListView com Filtro

Objeto ListView com Filtro

Como vimos na postagem anterior - Trabalhando com Objetos no Excel - ListView - o listview é um objeto muito interesssante de ser utilizado em projetos desenvolvidos no Excel.

Nesta postagem, estarei dando outras explicações sobre a utilização do listview: com a possibilidade de filtrar as informações que são apresentadas nele.





listview, excel
Quando um formulário que contém um listview é carregado, o mesmo (listview) pode ser preenchido com informações (dados).

Veja a figura ao lado. O código para executar este preenchimento foi explicado na postagem: Trabalhando com Objetos no Excel - ListView.

Notamos, na figura ao lado, que há trêz países sendo apresentados com suas devidas Unidades da Federação (UF / Estados).

Para que possamos aplicar um filtro nesta listagem fazendo com que apareça apenas determinado país, podemos utilizar o objeto ComboBox.
Filtro, listview, excel




No exemplo ao lado, o objeto ComboBox foi nomeado: 'cdPais'. 

Para que o objeto ComboBox (cdPais) filtre os dados que vão ser listados na ListView, podemos utilizar o código (macro) a seguir (observação: este código deve ser colocado no evento Change do objeto cdPais):









    Private Sub cdPais_Change()
        lastRow = Plan1.Cells(Rows.Count, "a").End(xlUp).Row
        ListView1.ListItems.Clear
        ' Adiciona itens
        For x = 2 To lastRow
            If UCase(Plan1.Cells(x, 2)) Like "*" & UCase(cdPais) & "*" Then
                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
            End If
        Next
    End Sub

Filtro, listview, userform, excel

A linha destacada na cor cinza no código acima é responsável pela aplicação do filtro.

UCase: Retorna uma seqüência de caracteres convertida em letras maiúsculas.

Like: Compara sequências de caracteres.

* (Asterísco): corresponde a zero ou masi caracteres.
&: Concatena (junta) sequências de caracteres.




Note na figura acima: assim que formos digitando o nome do país, o código que está relacionado a este objeto é executado listando apenas o país que tem o nome ou parte do nome escrito com suas respectivas UF (Estados).





3 comentários:

  1. Muito boa esta matéria. Figuras e conteúdo muito claros. Consegui entender muitobem e já estou adaptando as minhas necessidades.

    Parabéns professor.

    ResponderExcluir
  2. Ivair, como ordenar uma das colunas do listview em ordem alfabética?
    Alan

    ResponderExcluir
  3. cara consegui carregar os valores com base na lição anterior, quando o form é iniciado todos os dados são carregados, mas quando aplico o filtro os dados não estão filtrando, continua todos os dados da tela, porque será que não está dando certo?

    ResponderExcluir

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

Ivair Claudio Ferrari