Notifications
Clear all

Juntar dois arquivos num só

10 Posts
2 Usuários
0 Reactions
1,218 Visualizações
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Olá,

Tenho dois arquivos com a mesma informação e estrutura. Preciso de juntar os dois arquivos num só, sendo que o cabeçalho não deverá ser repetido. É possivel fazer tal coisa?

 
Postado : 18/05/2015 3:03 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

O que é exatamente juntar dois arquivos, todas as guias do arquivo1 em todas as guias no arquivo2 ou todas as guias do arquivo1 em uma única guia do arquivo2?

Sua dúvida está confusa de entende, seja mais claro, poste um modelo de como os dados estão dispostos nos arquivos.

Em nossa pesquisa há muita coisa com tal relação.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/05/2015 4:59 am
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Alex,

Obrigado pela resposta rápida.

Tenho o arquivo 1 e o arquivo 2 com dados. Pretendo criar um "arquivo novo" com a informação toda junta, ou seja, com o que está no arquivo 1 e no arquivo 2. No entanto, o cabeçalho não se pode repetir.

Não encontro nada parecido no site.

Muito Obrigado.

 
Postado : 18/05/2015 7:39 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Considerando que os arquivos estão fechados no diretório conforme macro.

Option Explicit
Sub AleVBA_15843()
    Dim sh As Worksheet
    Dim owbk As Workbook
    Application.DisplayAlerts = False
    Application.ScreenUpdating = 0
        Set sh = Sheets("Sheet1")
        Set owbk = Workbooks.Open("C:UsersAleVBADownloadsNew folder (3)Arquivo 1")
        Range("A2", Range("D" & Rows.Count).End(xlUp)).Copy
        sh.Range("A" & Rows.Count).End(xlUp).PasteSpecial xlPasteValues
        owbk.Close False
        
        Set owbk = Workbooks.Open("C:UsersalexandreDownloadsNew folder (3)Arquivo 2")
        Range("A2", Range("D" & Rows.Count).End(xlUp)).Copy
        sh.Range("A" & Rows.Count).End(xlUp).PasteSpecial xlPasteValues
        owbk.Close False
    Application.ScreenUpdating = 1
End Sub 

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/05/2015 6:56 pm
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Alex,

Acontece só que o caminho dos arquivos, bem como o nome, pode ser diferente de semana para semana. Como posso salvaguardar?

Esta parte do código tem de ser dinâmica:
Set owbk = Workbooks.Open("C:UsersAleVBADownloadsNew folder (3)Arquivo 1"

Muito obrigado pela ajuda

 
Postado : 19/05/2015 3:09 am
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Alex, reparei também que quando é colado o segundo arquivo, cola em cima da última linha do primeiro arquivo (eliminando assim um registo).

 
Postado : 19/05/2015 3:58 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Veja se ajuda..
Cuidado com o nome da paste era New folder (3) eu alterei para New folder

Option Explicit
Sub AleVBA_15843V2()
    Dim sh As Worksheet
    Dim owbk As Workbook
    Application.DisplayAlerts = False
    Application.ScreenUpdating = 0
        Set sh = Sheets("Sheet1")
        
        Application.DisplayAlerts = False
        Workbooks.Open Filename:=Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "")) & "New folderArquivo 1.xlsx"
        Range("A2", Range("D" & Rows.Count).End(xlUp)).Copy
        sh.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
        Workbooks("Arquivo 1.xlsx").Close
        
        Workbooks.Open Filename:=Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "")) & "New folderArquivo 2"
        Range("A2", Range("D" & Rows.Count).End(xlUp)).Copy
        sh.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
        Workbooks("Arquivo 2.xlsx").Close
    Application.ScreenUpdating = 1
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/05/2015 5:16 am
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Alex,

Me deparei com um problema. O "arquivo Mãe", para onde é copiada a informação dos outros arquivos, tem mais de 100.000 linhas. Quando o código conta o número de linhas para depois copiar para a primeira linha vazia, não está acontecendo. O código cola logo na segunda linha do ficheiro, esmagando informação importante. Penso que o problema esteja relacionado com o tamanho do arquivo e número de linhas preenchidas. Existe forma de contornar?

 
Postado : 25/05/2015 3:34 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Será que tem como postar os arquivo com dados falsos e mesmo tamanho de linhas etc?

Eu tentei o que entendi e o que pude, apesar de não ter resolvido seu caso.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 26/05/2015 2:45 pm
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Alex,

Acabei por resolver.

Obrigado por toda a ajuda.

 
Postado : 02/06/2015 5:03 am