Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por felipereis50
#13912
Olá

Primeiramente, digo que eu tenho 1% de conhecimento de macros. na verdade apenas o conceito.
Estou treinando e montando uma macro.

Desejo criar uma macro em que eu possa criar uma tabela dinâmica para ela.
Até aqui é fácil. Abri um excel e imaginando que na minha planilha exista 10 linhas e 10 colunas de informaçôes, Cliquei em Ctrl + T (selecionar tudo) fui no menu e criei uma tabela dinâmica. Montei os dados e encerrei a macro.

Supondo que no mês seguinte, a minha planilha traga 20 linhas + 20 colunas de informações. Vou na macro o executo.
O processo é feito normalmente, porém a seleção de dados fica apenas com as 10 linha e 10 colunas .

Imaginei que se eu desse um comando de Ctrl+T enquanto gravo a macro, numa próxima tabela onde existam x linhas e y colunas, a seleção de dados daria certo.

Como faço para resolve?
Avatar do usuário
Por gfranco
Avatar
#13924
Boa noite felipereis50.
Minha sugestão é que primeiramente, vc formate sua origem de dados no formato tabela ( guia inserir, grupo tabelas).
Estando então, sua origem dos dados formatada como acima e, apos criar a tabela dinâmica inicial, quando linhas ou colunas adjacentes aos dados iniciais forem incluídas basta ir na guia dados, grupo conexões e clicar em atualizar tudo que os dados recém inseridos já estarão disponíveis na tabela dinâmica. Não e necessário criar uma nova.
At.
gfranco
Avatar do usuário
Por alexandrevba
Avatar
#13948
Bom dia!!
Código: Selecionar todos
Sub Criar_Tabela_Dinamica()
'Autor: alexandreVBA
'Data: 15/08/2016
    Dim pt As PivotTable
    Dim strField As String
    Dim WSD As Worksheet
    Set WSD = Worksheets("Plan1") 'Origem dos dados
    Dim PTOutput As Worksheet
    Set PTOutput = Worksheets("Plan2") 'Local da TD
    Dim PTCache As PivotCache
    Dim PRange As Range
    ' Encontra a ultima linha com dados
    Dim finalRow As Long
    finalRow = WSD.Cells(Application.Rows.Count, 1).End(xlUp).Row
    ' Encontra a ultima coluna com dados
    Dim finalCol As Long
    finalCol = WSD.Cells(1, Application.Columns.Count).End(xlToLeft).Column
    ' Localiza o intervlo de dados
    Set PRange = WSD.Cells(1, 1).Resize(finalRow, finalCol)
    Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange)
    ' Deleta as colunas na Plan2
    PTOutput.Range("A:J").Delete
    ' Cria a Tabela Dinâmica
    Set pt = PTCache.CreatePivotTable(TableDestination:=PTOutput.Cells(1, 1), _
    TableName:="MinhaTD")
    'Defina seu LayOut preferido
    pt.ManualUpdate = False
End Sub
Att
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord