Notifications
Clear all

Tabela Dinamica e VBA

2 Posts
2 Usuários
0 Reactions
590 Visualizações
(@fabiofilpi)
Posts: 0
New Member
Topic starter
 

Fala galera, beleza?

Sou novo aqui no Forum, mas ja acessei ele bastante pra aprender novas coisas.
Eu tenho uma pasta de trabalho aqui, que eu utilizo três planilhas dela.
Uma planilha eu entro os dados, coletados via userform preenchidos pelos usuarios.
A segunda planilha eu possuo a base de dados utilizados para as contas.
Na terceira planilha eu possuo 7 tabelas dinâmicas com os resultados compilados da primeira planilha.

A GRANDE dúvida é:
Eu gostaria, muito, que, a partir da última linha da maior das 7 tabelas dinâmicas, as linhas da ultima planilha fossem ocultadas.
Eu sei que a função para ocultar as linhas é EntireRow.Hidden = True.
Lembrando que cada tabela dinâmica tem um tamanho peculiar, e que esse tamanho é varável de acordo com as informações preenchidas via userform, eu gostaria de saber:
Como eu faço para o VBA ocultar as linhas a partir da ultima linha da tabela dinâmica??
Estou anexando a foto para entenderem melhor onde ficam as tabelas dinâmicas!!

 
Postado : 11/11/2016 7:04 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

fabiofilpi,

Bom dia!

No código abaixo, peguei uma dinâmica que tenho e verifiquei qual é a última linha dela pela coluna A. Depois, verifiquei qual é a linha final da planilha (abaixo da última linha até a linha final todas estão vazias (em branco), selecionei tudo e as escondi. Veja se assim lhe atende.

Sub Dinamica()
    Dim Ultimalinha As Long
    Dim LinhaFinal As Long
    Dim Coluna As String
    
    Application.ScreenUpdating = False
    Ultimalinha = Sheets("Plan1").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    Coluna = Left(ActiveCell.Address(rowabsolute:=False, columnabsolute:=False), 1)
    Range(Coluna & Ultimalinha).Select
    Selection.End(xlDown).Select
    LinhaFinal = ActiveCell.Row
    Range("A2").Select
    Rows(Ultimalinha + 1 & ":" & LinhaFinal).Select
    Selection.EntireRow.Hidden = True
    Application.ScreenUpdating = True
End Sub
 
Postado : 11/11/2016 8:00 am