Notifications
Clear all

Unificar arquivos em uma unica planilha

5 Posts
2 Usuários
0 Reactions
1,229 Visualizações
(@gpclouro)
Posts: 81
Trusted Member
Topic starter
 

Prezados, bom dia!

Gostaria de saber se há alguma macro onde eu possa unificar, por abas, vários arquivos de uma pasta em um só arquivo de excel.

Grato desde já.

 
Postado : 02/05/2017 9:01 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde,

Nesse tópico tem algo similar ao que você precisa: viewtopic.php?f=10&t=23194#p117160

Qual versão do Office você trabalha? Talvez você possa usar o PowerQuery (Nova Consulta) para fazer isso.

att,

 
Postado : 02/05/2017 10:44 am
(@gpclouro)
Posts: 81
Trusted Member
Topic starter
 

Utilizo o Office 2016

 
Postado : 02/05/2017 3:49 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

OK.

Se você quer ajuda, anexe um arquivo de exemplo e escreva detalhadamente de onde para onde deve ir as informações.

att,

 
Postado : 02/05/2017 3:56 pm
(@gpclouro)
Posts: 81
Trusted Member
Topic starter
 

Consegui uma macro que faz o que eu precisava!

Sub Importar_XLS()

Dim sPath As String, sName As String, fName As String
Dim r As Long, rTemp As Long
Dim shPadrao As Worksheet

'Para a macro executar mais rápido!
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With

'A planilha onde serão colados os dados
Set shPadrao = Sheets("Plan1")

'O caminho onde as planilhas que serão lidas estao
sPath = "C:UsersglouroDesktopConsolidar"

'Descubro o nome do primeiro arquivo a ser aberto
sName = Dir(sPath & "*.xl*")

'Faço o loop que le todos os arquivos
Do While sName <> ""

'Acha a ultima linha utilizada na planilha onde serao colados os dados
r = shPadrao.Cells(Rows.Count, "A").End(xlUp).Row


'O caminho + o nome do arquivo a ser aberto
fName = sPath & sName

'Abro o workbook a ser lido
Workbooks.Open Filename:=fName, UpdateLinks:=False

'Descubro sua quantas linhas ele possui
rTemp = ActiveWorkbook.ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row


'Colo na planilha principal
ActiveWorkbook.ActiveSheet.Range("A1:CY" & rTemp).Copy shPadrao.Range("A" & r + 1)

'Fecho o arquivo já lido
ActiveWorkbook.Close SaveChanges:=False

ScapeB:

'Atualizo a variavel com funcao DIR() que acha o proximo arquivo nao processado
sName = Dir()

Loop

On Error GoTo 0

With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With

End Sub
 
Postado : 13/09/2018 11:18 am