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:
Verificar valor selecionado no slicer com vba
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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