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]
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 07/06/2017 6:05 am