Olá pessoal!!

Após fazer meu primeiro artigo sobre segmentação de dados (slicer) fiquei com a idéia de fazer um segundo artigo.

No primeiro artigo mostrei como manipular totalmente um slicer e dando continuidade quero comentar como verificar valores de slicer com vba, afinal nada melhor para embelezar a planilha e encantar os olhos de todos.

Então sem mais delongas segue abaixo:

 

Valores de slicer com VBA

 

Verificar valor selecionado no slicer com vba

Sub valor_slicer()

'este é o codigo de um slicer qualquer com um valor de exemplo selecionado
With ActiveWorkbook.SlicerCaches("SegmentaçãodeDados_PRODUTO")
.SlicerItems("Celular").Selected = True
.SlicerItems("Livros").Selected = False
.SlicerItems("Tablets").Selected = False
End With

'aqui então começa o verdadeiro codigo...
'crio um objeto com o slicer que quero operar
Set seg = ActiveWorkbook.SlicerCaches("SegmentaçãodeDados_PRODUTO")

'utilizo de um for para varrer os itens e ver qual o selecionado
'caso encontre um ou mais entao pego seu valor
For Each teste In seg.SlicerItems
If teste.Selected Then
MsgBox teste.Value
End If
Next

End Sub

 

Selecionar valor no slicer conforme texto em célula qualquer

Agora que tal deixar sua planilha com design mais automático? mais intuitiva para o cliente? 

Este código verifica em cada célula clicada se o valor é algum do slicer (segmentação de dados) e se for ele seleciona-o automaticamente.

 

Valores de slicer com VBA

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Set i = ActiveWorkbook.SlicerCaches("SegmentaçãodeDados_PRODUTO")

If ActiveCell.Value = "TV" Then
i.ClearManualFilter
i.SlicerItems("Celular").Selected = False
i.SlicerItems("Livros").Selected = False
i.SlicerItems("Tablets").Selected = False
i.SlicerItems("tv").Selected = True

End If

End Sub

 

Segue video completo para maior entendimento