Notifications
Clear all

Copiar varios xls para 1 xls

4 Posts
3 Usuários
0 Reactions
1,284 Visualizações
(@vaggnersf)
Posts: 34
Trusted Member
Topic starter
 

Pessoal preciso de uma ajuda para copiar vários xls para apenas um xls novo.
Vou passar o que realmente tenho.

Tenho vários arquivos xls com vários nomes diferentes (arquivo1.xls, arquivo2.xls, arquivo3.xls), dentro desses xls todos estão com mesmo padrão.
Preciso que assim que execute um código vba, ele pegue do arquivo 1, arquivo 2 e arquivo 3 todas as informações e adicione no meu novo arquivo teste1.xls onde vai rodar o código vba.

Lembrando que pode ser tudo adicionado na plan1 do arquivo teste1.xls q for copiado do arquivo1.xls, arquivo2.xls e arquivo3.xls da plan1 também.
A única coisa que preciso copiar mais ou menos 50 arquivos para um único arquivo.

Assim não preciso ficar abrindo arquivo por arquivo dando o copiar e colar.

 
Postado : 18/04/2013 7:31 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

vaggnersf,

Boa Noite!

Veja se o aqruivo anexo lhe atende.

 
Postado : 18/04/2013 7:44 pm
(@vaggnersf)
Posts: 34
Trusted Member
Topic starter
 

Wagner Morel.

O arquivo esta fazendo a copia, mais apenas de um único arquivo, os outros não estão sendo copiados.
Estou postando o código com algumas alterações para que possa me ajudar.

Sub ImportarArquivosExcel()
Dim Pasta As String
Dim Arquivo As String
Dim ANome As String

With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With

'Atribui a pasta onde estão os arquivos
Pasta = "E:Entradas"

'Coloca na variável o nome do primeiro arquivo
Arquivo = Dir(Pasta & "*.xls*")

'Inicia um laço para cópia dos arquivos
ANome = Pasta & Arquivo

Do
'Abre o arquivo
Workbooks.Open ANome

'Copia o intervalo usado da planilha de origem e cola
'na primeira linha vazia da planilha de destino
ActiveSheet.UsedRange.Copy _
ThisWorkbook.Sheets("Plan1").Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0)

'Fecha o arquivo
ActiveWorkbook.Close

'Coloca na variável o nome do próximo arquivo
Arquivo = Dir
Loop While Arquivo <> ""

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

MsgBox "Fim de Execução da Macro"
End Sub

 
Postado : 23/04/2013 11:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente assim:

Sub ImportarArquivosExcel()
Dim Pasta As String
Dim Arquivo As String
Dim ANome As String

With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With

'Atribui a pasta onde estão os arquivos
Pasta = "E:Entradas"

'Coloca na variável o nome do primeiro arquivo
Arquivo = Dir(Pasta & "*.xls")

Do While Arquivo <> ""

'Inicia um laço para cópia dos arquivos
ANome = Pasta & Arquivo

'Abre o arquivo
Workbooks.Open ANome

'Copia o intervalo usado da planilha de origem e cola
'na primeira linha vazia da planilha de destino
ActiveSheet.UsedRange.Copy _
ThisWorkbook.Sheets("Plan1").Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0)

'Fecha o arquivo
ActiveWorkbook.Close

'Coloca na variável o nome do próximo arquivo
Arquivo = Dir
Loop

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

MsgBox "Fim de Execução da Macro"
End Sub
 
Postado : 23/04/2013 11:36 am