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