Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#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:
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.
#27704
Por favor, anexe o arquivo com dados fictícios para que possa avaliar melhor.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord