Objetivo: Demonstrar a criação de uma tabela dinâmica que abre os detalhes da tabela dinâmica sempre na mesma tabela e também a criação de um hiperlink automaticamente para voltar a planilha da tabela dinâmica.
A tabela dinâmica é uma das melhores ferramentas do Excel, porém ela possui algumas limitações como por exemplo a que demonstro como burlar neste artigo.
Uma das principais funcionalidades de uma tabela dinâmica é realizar o Drill Drown dos dados, exportando estas informações para uma nova planilha, o problema é exatamente este, sempre é uma nova planilha, e logo você tem que ficar excluindo sempre estes dados.
No código comentado abaixo e na planilha em anexo, nós temos um exemplo de como, ao realizar o Drill Drown, abrir estes dados sempre em uma mesma planilha e criar também um hiperlink automaticamente para voltar a planilha inicial.
A planilha se torna bastante prática, dado que você não perderá mais o tempo de excluir a planilha criada, e também não precisará mais ficar procurando a planilha aonde você estava antes.
Abaixo o código comentado, ele deve ser colocado na planilha aonde está a tabela dinâmica:
Sub lsExpandirDados()
On Error GoTo Sair
Dim lPlanCriada As String
Dim lPlanilhaOriginal As String
'Captura o nome da planilha aonde está a tabela dinâmica
lPlanilhaOriginal = ActiveSheet.Name & "!" & ActiveCell.Address
'Desabilita mostrar alertas de mostrar mensagens de erro
Application.DisplayAlerts = False
'Limpa a planilha dados
Sheets("Dados").Range("A:XFD").Clear
'Abre os detalhes do registro da tabela dinâmica
Selection.ShowDetail = True
'Guarda o nome da planilha criada
lPlanCriada = ActiveSheet.Name
'Copia os dados abertos
Selection.Copy
'Cola as informações na tabela dados
Sheets("Dados").Select
Sheets("Dados").Cells(1, 1).Activate
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Exclui a planilha criada
Worksheets(lPlanCriada).Delete
'Organiza as colunas
Selection.EntireColumn.AutoFit
Worksheets("Dados").Range("B2").Select
ActiveWindow.FreezePanes = True
Worksheets("Dados").Range("A1").Select
Selection.End(xlToRight).Select
Worksheets("Dados").Cells(1, ActiveCell.Column + 2).Select
ActiveCell.Value = "Voltar"
'Cria o hiperlink
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
lPlanilhaOriginal, TextToDisplay:="Voltar"
Sair:
End Sub
'Evento que é chamado antes do duplo clique da planilha
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Sub que realiza a abertura dos dados
lsExpandirDados
End Sub
Baixe a planilha
Abraço
Marcos Rieper



