Notifications
Clear all

Juntar abas em um documento .txt

4 Posts
2 Usuários
0 Reactions
1,244 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia, tenho diversos arquivos .xlsx onde cada um desses arquivos possui algumas abas com nomes distintos, e preciso juntar esses arquivos em um documento externo formato .txt tabulado. Imaginei em salvar todas as abas como .csv e depois juntar via prompt por type, mas como são muitos arquivos perderia muito tempo abrindo e salvando cada aba. Gostaria de fazer esse processo via macro.
Em anexo coloquei um arquivo resumido onde existem 6 abas, 3 com o layout do "Arq6" e 3 com layout do "Arq12", a intenção é montar dois arquivos distintos um com as abas "Arq6" e outro com as abas "Arq12".

 
Postado : 06/06/2017 7:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia, tenho diversos arquivos .xlsx onde cada um desses arquivos possui algumas abas com nomes distintos, e preciso juntar esses arquivos em um documento externo formato .txt tabulado. Imaginei em salvar todas as abas como .csv e depois juntar via prompt por type, mas como são muitos arquivos perderia muito tempo abrindo e salvando cada aba. Gostaria de fazer esse processo via macro.
Em anexo coloquei um arquivo resumido onde existem 6 abas, 3 com o layout do "Arq6" e 3 com layout do "Arq12", a intenção é montar dois arquivos distintos um com as abas "Arq6" e outro com as abas "Arq12".

Consegui resolver parcialmente o problema, juntando todos os arquivos em uma documento novo que ao final irei salvar como .csv, o problema é que em alguns casos ele ultrapassa o limite de linhas do Excel, truncando a informação.

Segue código utilizado:

[b][b][b][b]Sub ZCO012()
'Abre o documento e seleciona a aba
Workbooks.Open Filename:="E:Análise de MOPExemplo.xlsx"
Sheets("ZCO012 LOTE 1").Activate
'
'
'Seleciona e cópia todo o intervalo preenchido na aba selecionada
ActiveSheet.Range(ActiveSheet.Cells(1, 23), ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count, 1)).Copy
'
'Abre documento de destino e seleciona a pasta
Windows("Pasta1.xlsm").Activate
Sheets("ZCO012").Activate
'
'Cola os dados cópiados da planilha origem
Range("A1").Select
ActiveSheet.Paste
'
'Vai para a primeira célula vazia da coluna "A"
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'
'Repete o processo para copiar os dados de outra aba
Windows("Exemplo.xlsx").Activate
Sheets("ZCO012 LOTE 2").Activate
ActiveSheet.Range(ActiveSheet.Cells(1, 23), ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count, 1)).Copy
Windows("Pasta1.xlsm").Activate
Sheets("ZCO012").Activate
ActiveSheet.Paste
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'
'Repete o processo para copiar de outra aba
Windows("Exemplo.xlsx").Activate
Sheets("ZCO012 LOTE 3").Activate
ActiveSheet.Range(ActiveSheet.Cells(1, 23), ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count, 1)).Copy
Windows("Pasta1.xlsm").Activate
Sheets("ZCO012").Activate
ActiveSheet.Paste
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select

End Sub[/b][/b][/b][/b]
 
Postado : 07/06/2017 6:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Sub ZCO006()
'
arqSaida = Cells(1, 10).Value ' Queria que esta variável alimenta-se o nome do arquivo de saída
arqEntrada = Cells(2, 10).Value ' Queria que esta variável alimenta-se o nome do arquivo de entrada
'Windows("ZCO006_" & ano & ".xlsx").Activate

'Abre arquivo de SAÍDA
Workbooks.Open Filename:="E:Análise de MOPSaídasZCO006_0715.xlsx"

'Abre arquivo de ENTRADA
Workbooks.Open Filename:="E:Análise de MOPZCO006 e ZCO0122015ZCO006 PEP JUL-15.xlsx"
Sheets("ZCO006 LOTE 1").Activate
'
ActiveSheet.Range(ActiveSheet.Cells(1, 23), ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count, 1)).Copy
Windows("ZCO006_0715.xlsx").Activate
Range("A1").Select
ActiveSheet.Paste
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'
Windows("ZCO006 PEP JUL-15.xlsx").Activate
Sheets("ZCO006 LOTE 2").Activate
ActiveSheet.Range(ActiveSheet.Cells(1, 23), ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count, 1)).Copy
Windows("ZCO006_0715.xlsx").Activate
ActiveSheet.Paste
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'
Windows("ZCO006 PEP JUL-15.xlsx").Activate
Sheets("ZCO006 LOTE 3").Activate
ActiveSheet.Range(ActiveSheet.Cells(1, 23), ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count, 1)).Copy
Windows("ZCO006_0715.xlsx").Activate
ActiveSheet.Paste
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'
ChDir "E:Análise de MOPSaídas"
ActiveWorkbook.SaveAs Filename:="E:Análise de MOPSaídasZCO006_0715.csv", _
FileFormat:=xlCSV, CreateBackup:=False

 
Postado : 07/06/2017 11:22 am
(@brunoxro)
Posts: 0
New Member
 

Boa tarde,

Deixa ver se eu entendi, você quer abrir vários arquivos que estão numa pasta, juntar em uma única (duas) planilhas e transformar em .txt?

att,

 
Postado : 08/06/2017 11:19 am