Ir ao conteúdo

AutoFiltro VBA


dj_testinha

Posts recomendados

Postado

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

Postado

@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.

 

;)

Postado

@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 

Postado

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

Postado

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

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!