Compartilhar via

Macro - valor de célula como parâmetro

Anônima
2009-09-07T19:45:06+00:00

Boa tarde, peço ajuda para o seguinte: numa planilha Plan1 incluí um botão ao qual associei uma macro. Em A2 e A3 de Plan1 estão duas datas que definem um intervalo e que desejo sejam os valores de param1 e param2 no segmento de código abaixo quando o botão for clicado. Notem que o filtro ocorrerá em outra planilha, Plan2. 

    Set w = Worksheets("Plan2")

    w.Cells.AutoFilter Field:=3, Criteria1:="Texto a pesquisar"

    w.Cells.AutoFilter Field:=2, Operator:=xlFilterValues, _

        Criteria2:=Array(2, param1, 1, param2)

Este código funciona quando insiro os valores para param1 e param2 no próprio.

    Dim param1, param2 As String

    param1 = "08/11/2009"

    param2 = "09/01/2009"

Microsoft 365 e Office 365 | Instalar, resgatar, ativar | Para uso doméstico | Outro

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

  1. Anônima
    2009-09-07T21:25:49+00:00

    Na sua rotina de teste, troque:

    param1 = "08/11/2009" param2 = "09/01/2009"

    por

    Dim param1 as Date Dim param2 as Date

    param1= Sheets("nome_da_planilha").Range("A2").value param2= Sheets("nome_da_planilha").Range("A3").value

    Se precisar formatar as datas em função de outras chamadas, utilize Format nas datas.

    Esta resposta foi útil?

    0 comentários Sem comentários

3 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2009-09-07T21:35:55+00:00

    Muito obrigado e boa noite.

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2009-09-07T21:21:40+00:00

    Esta é minha rotina de teste e funciona.

    Sub Filtra()

        Dim param1, param2 As String

        param1 = "08/11/2009"

        param2 = "09/01/2009"

        Set w = Worksheets("Plan2")

        w.Cells.AutoFilter Field:=3, Criteria1:="Texto a pesquisar"

        w.Cells.AutoFilter Field:=2, Operator:=xlFilterValues, _

            Criteria2:=Array(2, param1, 1, param2)

    End Sub

    O que não sei é como codificar para que ao clicar o botão que dispara a macro, as data armazenadas em A2 e A3 sejam passadas como parâmetros.

    Penso que a macro ficaria parecida com:

       Sub Filtra(param1, param2)        

           Set w = Worksheets("Plan2")

           w.Cells.AutoFilter Field:=3, Criteria1:="Texto a pesquisar"

           w.Cells.AutoFilter Field:=2, Operator:=xlFilterValues, _

               Criteria2:=Array(2, param1, 1, param2)

       End Sub

    Mas como fazer o clique no botão resultar em uma chamada do tipo: Filtra("08/11/2009", "09/01/2009")?

    Obrigado.

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2009-09-07T20:36:52+00:00

    Não entendi o problema. Vc não consegue passar as datas como parâmetro? Qual código vc está utilizando para isso?

    Esta resposta foi útil?

    0 comentários Sem comentários