Pesquisar este blog

Mostrando postagens com marcador dinâmica. Mostrar todas as postagens
Mostrando postagens com marcador dinâmica. Mostrar todas as postagens

quarta-feira, 12 de março de 2014

Filtrar uma tabela dinamica via macro

Usuarios avancados: utiliza Macro e codigo VBA
 
Imagine que voce tenha uma planilha cheia de dados e gostaria de filtrar uma tabela dinamica com um dado especifico para visualizar um grafico dinamico dessa informacao.

Utilize este codigo abaixo, e tenha um filtro rapido e lindo de visualizar

Chame a procedure a partir do evento BeforeDoubleClick da planilha que o usuario vai  clicar 2x sobre a celula do valor que ele quer filtrar

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    
' se for coluna B, diferente de Vazio e numero de linha maior q 7 chama a funcao
If Target.Column = 2 And Target.Value <> "" And Target.Row > 7 Then 'B
   
        Call filterpvtEmployee(Target.Value)
   
    End If
End Sub

Codigo do modulo

Sub filterpvtEmployee(pname As String)
'
' filterpvtEmployee Macro
' runs this macro when double click a name in pivot table for the month
'

'
Application.ScreenUpdating = False
   
    Sheets("Trend YTD").Select
    'ActiveSheet.PivotTables("pvttrendO").PivotFields("Name").ClearAllFilters
  
    'Speeds up code dramatically
    ActiveSheet.PivotTables("pvttrendO").ManualUpdate = True
  
  
   i = 1
    With ActiveSheet.PivotTables("pvttrendO").PivotFields("Name")
               
        'exibe o que for certo
        ActiveSheet.PivotTables("pvttrendO").PivotFields("Name").PivotItems(pname).Visible = True
       
       
        'esconde o q nao eh pra mostrar
        For Each itm In .PivotItems
       
         Application.StatusBar = "Filtering data:  " & Str(Round((i / .PivotItems.Count) * 100, 0)) & " % complete"
        
            If itm.Value <> pname Then
                itm.Visible = False
            End If
            i = i + 1
        Next itm

    End With

'Speeds up code dramatically

    ActiveSheet.PivotTables("pvttrendO").ManualUpdate = False

Application.ScreenUpdating = True

End Sub

terça-feira, 11 de março de 2014

Ordenar lista de valores de um campo na tabela dinâmica

Muitas vezes podemos nos incomodar com aquela lista imeeeeeeeensa de valores em um filtro de campo na tabela dinâmica.

A solução é muito simples:

  1. Arraste (temporariamente) o campo para área de linhas (lateral esquerda da tabela dinâmica)
  2. Clique com o botão direito e selecione Ordernar A - Z
  3. Com a lista de valores deste campo ordenada, volte o campo para o lugar dele (geralmente filtro de página)

Prontinho, sua lista agora aparecerá no lugar certo e completamente ordenada!

Bons trabalhos
Continue em contato!

Veja também estas dicas

Related Posts Plugin for WordPress, Blogger...