Página 1 de 1
Cada botão da segmentação liga ou desliga imagem
Enviado: 04 Jul 2020 às 12:12
por EmersonLegatti
Boa tarde pessoal, tudo bem? Espero que sim.
No arquivo anexo tenho 3 segmentações de dados para a mesma contagem de uma tabela dinâmica.
Gostaria que cada um dos 2 botões destas segmentações fizessem ligar ou desligar uma imagem.
Outra coisa é fazer este mesmo procedimento, mas com um botão criado a partir de uma forma, neste caso, o mesmo botão liga e desliga a imagem.
Vi estes códigos em uma aula, mas perdi o link e infelizmente não decorei....
Desde já agradeço a colaboração de todos.
Bom fim de semana.
Re: Cada botão da segmentação liga ou desliga imagem
Enviado: 06 Jul 2020 às 09:03
por babdallas
Veja se é isso o que deseja.
Código para mostrar e ocultar todas as imagens
Código: Selecionar todosPublic Sub Mostrar_Esconder_Imagens()
Dim shpForma As Shape
Dim bolMostrar As Boolean
bolMostrar = wshPrincipal.Range("XFD1").Value
wshPrincipal.Range("XFD1").Value = Not bolMostrar
For Each shpForma In wshPrincipal.Shapes
Select Case shpForma.Name
Case "dúvida", "dúvida não", "máscara", "máscara não", "positivo", "positivo não"
shpForma.Visible = bolMostrar
End Select
Next shpForma
End Sub
Código para clicar na segmentação de dados e aparecer as imagens selecionadas
Código: Selecionar todosPrivate Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
Application.ScreenUpdating = False
With wshAux
If .Range("A2") = "sim" And .Range("A3") = vbNullString Then
wshPrincipal.Shapes("dúvida").Visible = True
wshPrincipal.Shapes("dúvida não").Visible = False
ElseIf .Range("A2") = "não" And .Range("A3") = vbNullString Then
wshPrincipal.Shapes("dúvida").Visible = False
wshPrincipal.Shapes("dúvida não").Visible = True
Else
wshPrincipal.Shapes("dúvida").Visible = False
wshPrincipal.Shapes("dúvida não").Visible = False
End If
If .Range("C2") = "sim" And .Range("C3") = vbNullString Then
wshPrincipal.Shapes("máscara").Visible = True
wshPrincipal.Shapes("máscara não").Visible = False
ElseIf .Range("C2") = "não" And .Range("C3") = vbNullString Then
wshPrincipal.Shapes("máscara").Visible = False
wshPrincipal.Shapes("máscara não").Visible = True
Else
wshPrincipal.Shapes("máscara").Visible = False
wshPrincipal.Shapes("máscara não").Visible = False
End If
If .Range("E2") = "sim" And .Range("E3") = vbNullString Then
wshPrincipal.Shapes("positivo").Visible = True
wshPrincipal.Shapes("positivo não").Visible = False
ElseIf .Range("E2") = "não" And .Range("E3") = vbNullString Then
wshPrincipal.Shapes("positivo").Visible = False
wshPrincipal.Shapes("positivo não").Visible = True
Else
wshPrincipal.Shapes("positivo").Visible = False
wshPrincipal.Shapes("positivo não").Visible = False
End If
End With
Application.ScreenUpdating = True
End Sub
Cada botão da segmentação liga ou desliga imagem
Enviado: 06 Jul 2020 às 21:51
por EmersonLegatti
Boa noite Babdallas, tudo bem?
Certeiro como sempre, cara!!! Parabéns!!! e muito, muito obrigado.
Desta vez o código foi pesado para eu acompanhar....rsrsrsrs.....muito abstrato....rsrsrrs
Ficou um pequeno "bug"...
Nas segmentações....da esquerda para direita....se eu seleciono...não...não...não....a primeira segmentação inverte os botões sim e não....e se clicar em sim (sem limpar os filtros) ele desaparece todas as imagens...
Valeu novamente.
Re: Cada botão da segmentação liga ou desliga imagem
Enviado: 07 Jul 2020 às 08:24
por babdallas
As segmentações de dados estavam conectadas erroneamente com as tabelas dinâmicas. Arrumei. Veja se corrigiu.
Cada botão da segmentação liga ou desliga imagem
Enviado: 08 Jul 2020 às 12:01
por EmersonLegatti
Boa tarde Babdallas, tudo bem?
Show meu amigo, pelo que testei aqui agora ficou redondinho....exatamente o que queria....
Aproveitando o tópico...
Neste meio tempo tentei fazer uma outra segmentação, mas criando os botões com formas e gravando macros (arquivo anexo).
A questão é que preciso proteger a planilha contra edições, pq é um dashboard...
Sei fazer este procedimento mesmo com as segmentação de dados nativa, sem problemas, mas.....
Utilizando os botões que criei, quando eles trocam de cor, dá erro de depuração pq a planilha está protegida.
Teria como bloquear a movimentação ou edição estes botões, mas sem dar esse erro??
Obrigado, gde abraço.
Re: Cada botão da segmentação liga ou desliga imagem
Enviado: 08 Jul 2020 às 15:26
por babdallas
Esta pasta de trabalho que você anexou não tem código algum. Poderia anexar o que você tentou fazer? Preciso entender melhor o que você deseja.
Cada botão da segmentação liga ou desliga imagem
Enviado: 09 Jul 2020 às 08:47
por EmersonLegatti
Bom dia Babdallas, anexei o arquivo errado, desculpe.
Agora foi...
Obrigado...
Re: Cada botão da segmentação liga ou desliga imagem
Enviado: 09 Jul 2020 às 11:37
por babdallas
Veja se atende. Coloquei no código a destroteção e proteção da planilha com senha 123.
Cada botão da segmentação liga ou desliga imagem
Enviado: 09 Jul 2020 às 21:39
por EmersonLegatti
Boa noite Babdallas, tudo bem?
No arquivo que vc enviou, não sei por que, os objetos não estavam protegidos contra edição mesmo com as cxs de edição de cenário e de objeto desmarcadas, mas passei o código para o meu arquivo e tudo funcionou normal.
Mais uma vez muito obrigado.
Gde abraço.