Ir ao conteúdo
  • Cadastre-se
Flávia de Oliveira Batista

Excel Como definir array variável para filtro em VBA

Recommended Posts

 ActiveSheet.Range("$A$1:$H$1").AutoFilter Field:=8, Operator:= _
        xlFilterValues, Criteria2:=Array(1, "1/30/2018", 1, "2/29/2018", 1, "3/31/2018", 0, _
        "12/31/2017", 0, "12/31/2016")
   
    Range("A19").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.EntireRow.Delete
    ActiveSheet.Range("$A$1:$H$694").AutoFilter Field:=8

 

Boa tarde, gente!

Eu tenho uma coluna de data. Onde fica a informação de quando os meus equipamentos entram na manutenção.

Eu preciso filtrar todos os que entraram em manutenção no mês vigente e excluir todas as linhas dos equips de outros meses.

 

Gravei uma macro e gerou o cód acima. O problema é que sempre que vou gerar o relatório as datas são diferentes e preciso também gerar todo mês esse relatório.

Aquela parte (Criteria2:= Array (1, "1/30/2018", 1,"2/29/2018", 1, "3/31/2018, 0, 12/31/2017, 0, "12/31/216") tem que ser uma variável, né.. pra conseguir filtrar certinho...

Então eu precisava que a macro identificasse o mês vigente e filtrasse tudo o que não fosse do mês de forma automática.

Como faço para resolver este problema?

 

Desde já agradeço a ajuda.

 

Sds

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

 

Não sei como criar esse array com as datas do mês vigente, porém sugiro você ter uma coluna a mais contento o número do mês por exemplo:

 

Janeiro = 1

Fevereiro = 2

.....

Dezembro = 12

 

Sendo assim, você pode identificar o valor do mês atual e realizar seu filtro.

Sub FuncMes()
Dim vlr	As Integer
vlr = Month(Date)

End Sub

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Flávia de Oliveira Batista , boa noite.

 

Uma ideia seria:

 

Sub FiltraMêsAtual()
  Dim Di As Variant, Df As Variant
  Di = DateSerial(Year(Date), Month(Date), 1):  Df = DateAdd("m", 1, Di) - 1
  Di = Format(Di, "mm/dd/yyyy"):                Df = Format(Df, "mm/dd/yyyy")
  ActiveSheet.Range("$A$1:$H$1").AutoFilter Field:=8, Operator:=xlAnd, _
                                 Criteria1:=">=" & Di, Criteria2:="<=" & Df
End Sub

 

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×