segmentação de dados em multiplas tabelas dinâmicas, de fontes diferentes mas com mesmo filtro / how to use slicer to select multiple pivottables that has different sourcecode

Anônima
2015-09-29T00:16:38+00:00

Como utilizar a segmentação de dados em multiplas tabelas dinâmicas, de fontes diferentes mas com mesmo filtro?

Tenho 3 tabelas, todas possuem o mesmo codigo chave, CODIGO DO PROJETO, mas o restante das colunas são diferentes. Criei 3 tabelas dinâmicas, 1 tabela dinâmica para cada tabela/lista; criar uma segmentação de dados mas este somente atualiza somente 1 tabela dinâmica e não as 3 tabelas como esperado. Como posso proceder? Tem como utilizar VBA para solucionar?

how to use slicer to select multiple pivottables that has different sourcecode?

I had 3 tables, each one has a pivottable. Each table has the same primarykey, example: Project code, but the other columns are different. I created a slicer, but it only update one pivot table and not the 3 tables. How can I solve it? Is possible to use VBA?

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

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

Anônima
2015-09-29T14:00:53+00:00

Olá Renato!

Este tipo de automatização somente com VBA mesmo.

Fiz alguns testes aqui e cheguei a um código que cumpre com o desejado. Não sei se é a forma mais otimizada, mas funcionou para mim. Você terá que adaptar o código conforme nome das caixas de segmentação que você colocou na planilha.

Private Sub Worksheet_Change(ByVal Target As Range)

'declaração de variáveis

Dim i As Integer

Dim n As Integer

'Congelar tela

Application.ScreenUpdating = False

On Error GoTo fim

'Para selecionar dos botões de seguimentação foi preciso rodar duas vezes o código

For n = 1 To 2

'laço para marcar os botões de segmentação

For i = 1 To ActiveWorkbook.SlicerCaches("SegmentaçãodeDados_Código_do_projeto").SlicerItems.Count

Application.EnableEvents = False

'ajuste da Segmentação 1

With ActiveWorkbook.SlicerCaches("SegmentaçãodeDados_ Código_do_projeto 1")

.SlicerItems(i).Selected = ActiveWorkbook.SlicerCaches("SegmentaçãodeDados_ Código_do_projeto ").SlicerItems(i).Selected

End With

'ajuste da Segmentação 2

With ActiveWorkbook.SlicerCaches("SegmentaçãodeDados_ Código_do_projeto 2")

.SlicerItems(i).Selected = ActiveWorkbook.SlicerCaches("SegmentaçãodeDados_ Código_do_projeto ").SlicerItems(i).Selected

End With

Next i

Next n

fim:

'Retornar com os eventos e atualização de tela

Application.EnableEvents = True

Application.ScreenUpdating = True

End Sub

Você deve copiar este código para o módulo da planilha onde estão as tabelas dinâmicas com suas respectivas caixas de segmentação de dados.

Tente ai e qualquer dúvida pergunte.

Esta resposta foi útil?

1 pessoa achou esta resposta útil.
0 comentários Sem comentários

0 respostas adicionais

Classificar por: Mais útil