Saudações, caros usuários,
Preciso de uma valiosa ajuda:
Tenho uma tabela dinâmica derivada de um intervalo de dados que inevitavelmente tem algumas linhas em branco, e consequentemente a referida tabela dinâmica apresenta o item (vazio) em rótulos de linhas. Até aí, o simples filtrar, desmarcando o item (vazio) resolveria a questão, mas o problema é que, dessa tabela dinâmica, gerei um gráfico para análise, bem como uma segmentação de dados para dinamizar a consulta, e daí, toda vez que limpo o filtro da segmentação, o item (vazio) acaba reaparecendo, não só na tabela como também no gráfico.
Alguém poderia sugerir um código para que, toda vez que a segmentação for "limpa", automaticamente o item (vazio) seja novamente desmarcado na tabela dinâmica?
Em anexo vai o print da planilha de exemplo para melhor esclarecimento da questão.
Desde já fico muito grato pela ajuda.
Vídeo recomendado
https://youtu.be/Ju8Esra5--I
https://youtu.be/Ju8Esra5--I
DESMARCAR VAZIO EM TABELA DINÂMICA AO LIMPAR FILTRO DE SEGMENTAÇÃO DE DADOS
-
alexlounofre
- Acabou de chegar

- Mensagens: 2
- Registrado em: Ter Mar 07, 2023 12:06 pm
DESMARCAR VAZIO EM TABELA DINÂMICA AO LIMPAR FILTRO DE SEGMENTAÇÃO DE DADOS
- Anexos
-
- Print.jpeg (209.15 KiB) Exibido 15728 vezes
-
alexlounofre
- Acabou de chegar

- Mensagens: 2
- Registrado em: Ter Mar 07, 2023 12:06 pm
Re: DESMARCAR VAZIO EM TABELA DINÂMICA AO LIMPAR FILTRO DE SEGMENTAÇÃO DE DADOS
Bem, estou postando a resposta obtida em outro fórum, por meio de um colaborador prestativo que me ajudou muito com a solução. O código consiste em uma private sub, conforme abaixo:
Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
'Desmarca item (vazio) na tabela dinâmica ao limpar segmentação
On Error Resume Next
Static n As Long
n = n + 1
If n > 1 Then Exit Sub
ActiveSheet.PivotTables("nome da tabela dinâmica").PivotFields("nome do campo").PivotFilters _
.Add2 Type:=xlCaptionDoesNotEqual, Value1:="(vazio)"
'A linha abaixo é uma outra alternativa que também funciona:
'Target.PivotFields("nome do campo").PivotFilters _
.Add2 Type:=xlCaptionDoesNotEqual, Value1:="(vazio)"
n = 0
End Sub
Espero que possa ajudar mais pessoas que porventura tenham a mesma dúvida.
Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
'Desmarca item (vazio) na tabela dinâmica ao limpar segmentação
On Error Resume Next
Static n As Long
n = n + 1
If n > 1 Then Exit Sub
ActiveSheet.PivotTables("nome da tabela dinâmica").PivotFields("nome do campo").PivotFilters _
.Add2 Type:=xlCaptionDoesNotEqual, Value1:="(vazio)"
'A linha abaixo é uma outra alternativa que também funciona:
'Target.PivotFields("nome do campo").PivotFilters _
.Add2 Type:=xlCaptionDoesNotEqual, Value1:="(vazio)"
n = 0
End Sub
Espero que possa ajudar mais pessoas que porventura tenham a mesma dúvida.

