Estou com um problema para inserir uma tabela dinâmica e gostaria da ajuda de vocês.
Tenho uma base em "Plan1" com 75 variáveis organizadas por colunas(75 colunas), e na primeira linha seus respectivos nomes
Gostaria de inserir uma Tabela Dinâmica em "Plan2" que funcionasse para qualquer extensão de linha que eu tiver na base. Pois as vezes a base é grande(muitas linhas) as vezes é pequena.
A princípio tentei fazer gravando. Funcionou durante um tempo, depois parou. Quero fazer uma agora sólida. Para não dar mais problema. Segue essa macro gravada. Ocorreu o erro '1004' nela.
Pergunta
hugo.moreda
Boa tarde,
Estou com um problema para inserir uma tabela dinâmica e gostaria da ajuda de vocês.
Tenho uma base em "Plan1" com 75 variáveis organizadas por colunas(75 colunas), e na primeira linha seus respectivos nomes
Gostaria de inserir uma Tabela Dinâmica em "Plan2" que funcionasse para qualquer extensão de linha que eu tiver na base. Pois as vezes a base é grande(muitas linhas) as vezes é pequena.
A princípio tentei fazer gravando. Funcionou durante um tempo, depois parou. Quero fazer uma agora sólida. Para não dar mais problema. Segue essa macro gravada. Ocorreu o erro '1004' nela.
Sub FazTabela()
' FazTabela Macro
'
Sheets("Plan2").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Plan1!R1C1:R65536C76", Version:=xlPivotTableVersion10).CreatePivotTable _
TableDestination:="Plan2!R1C1", TableName:="Tabela dinâmica1", _
DefaultVersion:=xlPivotTableVersion10
Sheets("Plan2").Select
Cells(1, 1).Select
End Sub
Depois Tentei a seguinte programação:
Sub CreatePivot()
'
Dim WSD As Worksheet
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim PRange As Range
Dim FinalRow As Long
Set WSD = Worksheets("TabelaDinâmica")
For Each PT In WSD.PivotTables
PT.TableRange2.Clear
Next PT
FinalRow = WSD.Cells(Application.Rows.Count, 1).End(x1Up).Row
FinalCol = WSD.Cells(1, Application.Columns.Count).End(x1ToLeft).Column
Set PRange = WSD.Cells(1, 1).Resize(FinalRow, FinalCol)
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange.Address)
Set PT = PTCache.CreatePivotTable(TableDestination:=WSD.Cells(2, FinalCol + 2), TableName:="Tabela_dinamica1")
PT.ManualUpdate = True
PT.AddFields RowFields:=Array("idEmergencia", "Modalidad Viajem"), ColumnFields:="Transportadora"
With PT.PivotFields("Produto 1")
.Orientation = xlDataField
.Function = xlSum
.Position = 1
End With
PT.ManualUpdate = False
PT.ManualUpdate = True
PT.ShowTableStyleRowStripes = True
PT.TableStyle2 = "PivotStyleMedium10"
WSD.Activate
Range("J2").Select
End Sub
Muito obrigado!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.