Ir ao conteúdo
  • Cadastre-se
dj_testinha

AutoFiltro VBA

Recommended Posts

BOm dia pessoal!

 

Tenho um pasta de trabalho onde diariamente carrego oriundos do SAP e gero gráficos (dinâmicos).

 

Por ser um trabalho muito chato estou tentando automatiza-lo via VBA, porém estou com um problema q nao consigo resolver.

 

Em um dos graficos, tenho q trazer as informaçoes somente da data de hj. Faço isso usando o filtro de relatorio do grafico dinamico. Seleciono a data de hj e deseleciono a primeira data anterior ao dia de hj.

 

porém esses dados nao sao gerados em sabados, domingos e feriados. E ao automatizar para o vba essa tarefa, o programa ao procurar a data de ontem ocorre erro quando a mesma nao existe.

E nao consguir pensar em um codigo para achar qual é a primeira data imediatamente anterior a hj q esteja presente nos dados para filtrar.

 

ALguem poderia me ajudar?

 

 Segue anexo uma pasta de trabalho de exemplo e baixo o códio q estava utilizando

 

 

 

Sub atualizar()
 
Dim ontem As String
Dim hoje As String
 
 
ontem = Date - 1
hoje = Date
 
 
    ActiveWorkbook.RefreshAll
    
    Sheets("Sheet4").Select
    
    
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("Data").CurrentPage = _
        "(Tudo)"
    With ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("Data")
        
        .PivotItems(ontem).Visible = False
        .PivotItems(hoje).Visible = True
    End With
    
    
           
 
End Sub

TEste.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dj_testinha 

 

Tenho uma sugestão que - no meu entender - simplifica seu filtro:

 

Criei uma coluna a mais em "D" que chamei de FILTRO...  :)

 

Nela inseri a fórmula (D2) "=se(A2=hoje();1;0)" e copiei para os demais registros da coluna.

 

Desta forma sua tabela dinâmica pode usar a coluna FILTRO como filtro  :lol:

 

Também achei vantajoso o fato de não trabalhar com macros, ficou mais fácil, não ?

 

Veja se resolve seu problema e retorne o resultado.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mention!

 

Bem pensado isso. Usarei essa estratégia enquanto descubro um jeito de resolver o problema da macro.

 

Por questao de honra, se é q você me entende 

 

:P

:)

 

Obrigado pela ajuda 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite!!

 

Eu espero ter entendido sua duvida.

Option ExplicitSub ZinhoVBA_1063686()Dim pt As PivotTableSet pt = Sheets("Sheet4").PivotTables("Tabela dinâmica1")ActiveWorkbook.RefreshAllpt.PivotFields("Data").ClearAllFilterspt.PivotFields("Data").CurrentPage = Range("L1").ValueEnd Sub

Baixe o arquivo em

http://www.sendspace.com/file/8klwxw

 

 

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá zinhovba!

 

Nao tive tempo de testar sua solução.

 

Creio q amanha eu consiga.

 

Mas desde já agradeço a colaboração.

 

Em breve dou um feed back.

 

 

abraço

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

×