none
Macro com filtro "Está Entre" RRS feed

  • Pergunta

  • Boa noite!


    Estou com dificuldades para criar a seguinte macro:


    Ela deve colocar um filtro com a opção de valores entre o critério 1 e critério 2. Eu desejo por exemplo, um filtro que mostre os valores entre L1F e L7F.

    Segue um upload do arquivo modelo: http://www.4shared.com/rar/dv3KK5Cj/teste_1.html


    Sub Macro4()
    '
    ' Macro4 Macro
    '

     Sheets("Painel").Select
     Range("E5:G8").Select
     Range("G8").Activate
     Selection.Copy
     Sheets("BD(PARADAS)").Select
     Range("H1").Select
     ActiveSheet.Paste
     ActiveSheet.Range("$A$4:$K$34").AutoFilter Field:=6, Criteria1:=">=Range("I1").Value" _
     , Operator:=xlOr, Criteria2:="<=Range("J1").Value"
    End Sub


    Teoricamente, a macro que está acima funcionaria. O problema é que ela precisa de aspas antes do < e >(Sinal de maior e menor). Como eu coloquei aspas antes desses símbolos, não é possível colocar aspas no Range("I1").Value, pois a macro define que a instrução acaba em Range(".

    Se eu tiro as aspas do Range, a macro funciona. Porém, ela não define o
    Range(I1).Value como um comando, e sim como texto. Então ele cria o filtro, porém com valores entre o texto 1 e texto 2, não range 1 e 2.

    O que eu precisava: A macro deve fazer essa mesma sequência (está entre critério 1 e critério 2). Os critérios são definidos por uma célula, igual o modelo de macro que eu fiz.

    É possível, com essa mesma função, criar isso que eu pedi? Se não, quais opções eu tenho?

    segunda-feira, 9 de janeiro de 2012 22:20

Respostas

  • Boa noite Murilo.

    Não sei se no seu caso irá funcionar, mas sempre que preciso inserir ["] no VBA dentro de uma expressão que já a contenha ["..."], simplesmente insiro um novo caracter. Exemplo: ..."=TEXT(RC[-1],1,""mmm/aaaa"")".

    Outra saída, mais robusta, seria colocar os critérios na planilha e nomear o intervalo (sempre uso esse).

    Abraço.


    Filipe Magno

    sábado, 25 de agosto de 2012 23:51