Página 1 de 1

Filtro MultiCritério perde a propriedade

Enviado: 23 Out 2017 às 22:09
por VictorRambo
Boa noite. Estou trabalhando em um projeto aonde preciso filtrar produtor por critério e conforme as condições ele me exibira o resultado em uma listview.
O problema é que quando eu testo uma ComboBox com o critério ele funciona uma vez e se tento mudar algum outro esta combobox perde a informação e exibe todos os itens na coluna como se estivesse sem filtro.

Estou utilizando o mesmo código em todos os critérios, a principio ele deveria ir atribuindo um critério por coluna e assim poder fazer o filtro.

Obs: A unica coisa que mudo de um código pro outro é a palavra "Equipamento" a qual substituo pela palavra desejada.

O código que estou utilizando é o seguinte:
Código: Selecionar todos


    Dim W As Worksheet              ' variavel para armazena o nome da plan
    Dim Linha As Integer            ' armazena o valor da linha
    Dim Coluna_Equipamento As Integer           ' armazena o numero da coluna de pesquisa da cmb_materia
    Dim Valor_Celula_Equipamento As String ' recebe o valor da celula que esta o nome da materia
    Dim Lv As Object                ' declarando variavel para setar o objeto listview
    

    Set W = ThisWorkbook.Worksheets("BancoDados") 'setando a planilha
    
    Linha = 2 'defindo o valor de inicio da variavel, pois a 1ªlinha é o cabeçalho
    Coluna_Equipamento = 2 'definindo o numero da coluna de pesquisa do objeto cmb_materia


    ListView1.ListItems.Clear     'fazendo a limpeza do objeto listview


   If cbxEquipamento <> "" Then

    With W
  '
        While .Cells(Linha, Coluna_Equipamento).Value <> Empty
            Valor_Celula_Equipamento = .Cells(Linha, Coluna_Equipamento).Value
            
            'Condição para satisfazer a busca tem que ser igual ao valor da txt_pesquisa e igual a cmb_materia
            'converte o valor da celula materia para maiuscula e faz faz a contagem dos caracteres da esquerda
            If UCase(Left(Valor_Celula_Equipamento, Len(cbxEquipamento))) = UCase(cbxEquipamento) Then

            
            Set Lv = ListView1.ListItems.Add(Text:=Sheets("BancoDados").Cells(Linha, 1).Value) ' Coluna Modelo
    
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 2) ' Equipamento
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 3) ' Comprimento
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 4) ' Largura
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 5) ' Elevação
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 6) ' Corredor Operacional
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 7) ' Operação
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 8) ' Tração
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 9) ' T_Elevação
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 10) 'Tensão
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 11) 'Carga
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 12) 'Função Adicional
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 13) 'Acabamento
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 14) 'M_Roda
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 15) 'T_Roda
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 16) 'Alimentação
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 17) 'Garantia
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 18) 'D_Finame
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 19) 'Cod_Finame
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 20) 'Obs
                     Lv.ListSubItems.Add Text:=Worksheets("BancoDados").Cells(Linha, 21) 'Link

            End If
            Linha = Linha + 1 'incrementando a variavel linha para que possa continuar o laço
        Wend ' fim do comando while
    End With ' fim co comando with
  
    End If
    
    Me.lbl_registros = ListView1.ListItems.Count & " Registros localizados"


Grato.

Re: Filtro MultiCritério perde a propriedade

Enviado: 24 Out 2017 às 15:12
por babdallas
Por favor, anexe o arquivo com dados fictícios para que possa avaliar melhor.