Notifications
Clear all

Macro para importar xls em tabela dinâmica

2 Posts
1 Usuários
0 Reactions
743 Visualizações
(@mantova)
Posts: 13
Active Member
Topic starter
 

Boa tarde, primeiramente quero dizer que, pesquisando no fórum, não consegui encontrar um tópico que me atendesse, talvez por não ter conhecimento suficiente em VBA não percebi a resposta.

Preciso de uma macro que me possibilite importar diversos arquivos em xls para um único arquivo xls, gerando uma tabela dinâmica para cada.

Os arquivos terão nomes diferentes, mas a formatação das tabelas será sempre a mesma.

Preciso que a macro exiba uma janela permitindo que eu escolha o arquivo a ser importado. Abaixo um exemplo da macro que eu criei.
Ela não permite que eu escolha o arquivo a ser importado.
Os arquivos vão variar de nome de acordo com o mês em que forem gerados, todos terão uma única aba no interior, tendo o mesmo nome do arquivo.

Gostaria de criar um botão que automatizasse a importação e formatação, sendo que ao importar um novo mês, a dinâmica do anterior fosse apagada.

Alguém pode ajudar?

=======================================================================================================================================

With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=d:TESTEarquivoteste.XLS;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet O" _
, _
"LEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLE" _
, _
"DB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Databa" _
, _
"se=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
)
.CommandType = xlCmdTable
.CommandText = Array("arquivoteste$")
.MaintainConnection = True
.CreatePivotTable TableDestination:="[Pasta2]Plan1!R3C1", TableName:= _
"Tabela dinâmica12", DefaultVersion:=xlPivotTableVersion10
End With
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("wdatla")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tabela dinâmica12").AddDataField ActiveSheet. _
PivotTables("Tabela dinâmica12").PivotFields("wvacon"), "Soma de wvacon", xlSum
ActiveSheet.PivotTables("Tabela dinâmica12").AddDataField ActiveSheet. _
PivotTables("Tabela dinâmica12").PivotFields("wvaicm"), "Soma de wvaicm", xlSum
ActiveSheet.PivotTables("Tabela dinâmica12").AddDataField ActiveSheet. _
PivotTables("Tabela dinâmica12").PivotFields("wvatri"), "Soma de wvatri", xlSum
ActiveSheet.PivotTables("Tabela dinâmica12").AddDataField ActiveSheet. _
PivotTables("Tabela dinâmica12").PivotFields("wvaipi"), "Soma de wvaipi", xlSum
ActiveSheet.PivotTables("Tabela dinâmica12").AddDataField ActiveSheet. _
PivotTables("Tabela dinâmica12").PivotFields("wvaiso"), "Soma de wvaiso", xlSum
ActiveSheet.PivotTables("Tabela dinâmica12").AddDataField ActiveSheet. _
PivotTables("Tabela dinâmica12").PivotFields("wvamer"), "Soma de wvamer", xlSum
Range("B3").Select
With ActiveSheet.PivotTables("Tabela dinâmica12").DataPivotField
.Orientation = xlColumnField
.Position = 1
End With
Range("B4").Select
With ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("Soma de wvacon")
.Caption = " wvacon"
.NumberFormat = "#.##0,00"
End With
Range("C4").Select
With ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("Soma de wvaicm")
.Caption = " wvaicm"
.NumberFormat = "#.##0,00"
End With
Range("D4").Select
With ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("Soma de wvatri")
.Caption = " wvatri"
.NumberFormat = "#.##0,00"
End With
Range("E4").Select
With ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("Soma de wvaipi")
.Caption = " wvaipi"
.NumberFormat = "#.##0,00"
End With
Range("F4").Select
With ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("Soma de wvaiso")
.Caption = " wvaiso"
.NumberFormat = "#.##0,00"
End With
Range("G4").Select
With ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("Soma de wvamer")
.Caption = " wvamer"
.NumberFormat = "#.##0,00"
End With
End Sub

 
Postado : 06/01/2014 10:06 am
(@mantova)
Posts: 13
Active Member
Topic starter
 

Nada???

 
Postado : 08/01/2014 6:57 am