- 23 Out 2017 às 22:09
#27687
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:
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
Grato.
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"