none
Filtro contem em VBA com palavra ? RRS feed

  • Pergunta

  • Prezados,

    tem uma planilha e na coluna D existe varios valores de texto com nome de empresas. Preciso de uma rotina em VBA, quando eu digitar um determinado nome em uma msgbox, a mesma executasse o filtro na coluna D referente a esse nome.

    Ex.: Eu digitar "Dias" ai executasse o filtro me retornando todos os campos que contem "Dias" no inicio, meio ou fim de uma frase, ou nome.

    Att,

    Estanislau


    Att, Estanislau Frade msn: lauedele@hotmail.com email: estanislaufrade@yahoo.com.br estanislau.frade@vale.com

    terça-feira, 3 de julho de 2012 13:12

Respostas

  • Considere que seu cabeçalho começa na célula A1:

    Sub Exemplo()
        Dim sTermo As String
        
        sTermo = InputBox("Digite aqui a expressão que deseja busca:")
    
        If Not ActiveSheet.AutoFilterMode Then
            Cells.AutoFilter
        End If
        On Error Resume Next
        ActiveSheet.ShowAllData
        On Error GoTo 0
        
        Cells.AutoFilter _
          Field:=4, _
          Criteria1:="*" & sTermo & "*"
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta Estanislau Frade terça-feira, 10 de julho de 2012 14:04
    terça-feira, 3 de julho de 2012 21:21
    Moderador

Todas as Respostas

  • Você pode tentar aplicar o um auto filtro no campo da sua tabela.

    Ex: Caso seu intervalo esteja no formato de tabela.

        ActiveSheet.ListObjects("Tabela1").Range.AutoFilter Field:=4, Criteria1:= _
            "=*" & RespostaDaMensagem & "*", Operator:=xlAnd

    Caso esteja em lista apenas com o filtro:

        ActiveSheet.Range("$A:$H").AutoFilter Field:=4, Criteria1:= _
             "=*" & RespostaDaMensagem & "*", Operator:=xlAnd


    David Brigido


    • Editado David Brigido terça-feira, 3 de julho de 2012 18:22 complentação da resposta
    terça-feira, 3 de julho de 2012 18:20
  • Considere que seu cabeçalho começa na célula A1:

    Sub Exemplo()
        Dim sTermo As String
        
        sTermo = InputBox("Digite aqui a expressão que deseja busca:")
    
        If Not ActiveSheet.AutoFilterMode Then
            Cells.AutoFilter
        End If
        On Error Resume Next
        ActiveSheet.ShowAllData
        On Error GoTo 0
        
        Cells.AutoFilter _
          Field:=4, _
          Criteria1:="*" & sTermo & "*"
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta Estanislau Frade terça-feira, 10 de julho de 2012 14:04
    terça-feira, 3 de julho de 2012 21:21
    Moderador
  • Melhor código, esse funcionou bem!!!!
    sexta-feira, 30 de novembro de 2018 16:47