Usuário com melhor resposta
Ajuda com Macro Excel

Pergunta
-
Pessoal bom dia!
Tenho uma Pasta de Trabalho no Excel 2007 que tem 217 planilhas. Preciso copiar o conteudo de todas estas 217 planilhas para apenas uma única planilha na mesma Pasta de Trabalho.
Por exemplo:
Tenho Plan1, Plan2, Plan3, Plan4, Plan5, Plan6, Plan7, Plan8 e Plan9. Entao vou copiar todo o conteúdo destas planilhas para a Plan10. Sendo que: primeiro vem os dados da Plan1, Plan2, Plan3 e assim por diante.
Obrigado a todos!
Bruno
Att. Bruno Ciscotto
Respostas
-
Olá,
Há um exemplo pronto aqui: http://www.ambienteoffice.com.br/excel/concatenar_varias_planilhas/
Código:
Sub ConcatenarPlanilhas() Dim wb As Workbook Dim ws As Worksheet Dim wsTodos As Worksheet 'Cria uma nova Pasta de Trabalho, que conterá a Planilha 'com todas as Planilhas concatenadas. Set wb = Workbooks.Add Set wsTodos = wb.Sheets(1) For Each ws In ThisWorkbook.Sheets rngUsado(ws).Copy Destination:=wsTodos.Range("A" & _ rngUsado(wsTodos).Rows.Count + 1) Next ws 'É necessário apagar a primeira linha da Planilha 'de Resumo porque ela começa a copiar as Planilhas 'na linha 2, e não na 1: wsTodos.Rows(1).Delete End Sub 'Função para determinar o UsedRange real de uma Planilha: Function rngUsado(ws As Worksheet) As Range With ws Set rngUsado = .Range("A1:" & _ .UsedRange(.UsedRange.Cells.Count).Address) End With End Function
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Wagner dos Santos VasconcellosModerator quinta-feira, 10 de maio de 2012 17:05
-
Olá Bruno,
Como trata-se de um número muito grande de planilhas acho que a melhor idéia seria criar uma macro no Excel.
Alguns pontos a considerar:
1 - Será necessário informar na macro os nomes das planilhas que serão copiadas.
2 - Verificar a quantidade total de itens em cada planilha.
3 - Prever a quantidade de linhas necessarias para colar os dados da planilha na planilha de destino.
4 - Verificar a questão de segurança de macros.
5 - Para criar uma Macro clique no botão: Exibição Macros.
Elaborei este exemplo para você entender como funciona:
Sub Macro1()
'
' Macro1 Macro
''
Sheets("Plan1").Select
Selection.Copy
Sheets("Plan3").Select
ActiveSheet.Paste
Range("A5").Select
Sheets("Plan2").Select
Range("A1:B4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Plan3").Select
ActiveSheet.Paste
Range("B15").SelectEnd Sub
Espero ter ajudado.
Hezequias Vasconcelos de Lima MCITP - MCT - MCTS - MCP. Consultor SharePoint / EPM / PPM / Consultar Transcript: https://mcp.microsoft.com/authenticate/validatemcp.aspx Transcript ID: 843062 Code:hezequias01
- Marcado como Resposta Wagner dos Santos VasconcellosModerator quinta-feira, 10 de maio de 2012 17:05
Todas as Respostas
-
Olá Bruno,
Como trata-se de um número muito grande de planilhas acho que a melhor idéia seria criar uma macro no Excel.
Alguns pontos a considerar:
1 - Será necessário informar na macro os nomes das planilhas que serão copiadas.
2 - Verificar a quantidade total de itens em cada planilha.
3 - Prever a quantidade de linhas necessarias para colar os dados da planilha na planilha de destino.
4 - Verificar a questão de segurança de macros.
5 - Para criar uma Macro clique no botão: Exibição Macros.
Elaborei este exemplo para você entender como funciona:
Sub Macro1()
'
' Macro1 Macro
''
Sheets("Plan1").Select
Selection.Copy
Sheets("Plan3").Select
ActiveSheet.Paste
Range("A5").Select
Sheets("Plan2").Select
Range("A1:B4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Plan3").Select
ActiveSheet.Paste
Range("B15").SelectEnd Sub
Espero ter ajudado.
Hezequias Vasconcelos de Lima MCITP - MCT - MCTS - MCP. Consultor SharePoint / EPM / PPM / Consultar Transcript: https://mcp.microsoft.com/authenticate/validatemcp.aspx Transcript ID: 843062 Code:hezequias01
- Marcado como Resposta Wagner dos Santos VasconcellosModerator quinta-feira, 10 de maio de 2012 17:05
-
Olá,
Há um exemplo pronto aqui: http://www.ambienteoffice.com.br/excel/concatenar_varias_planilhas/
Código:
Sub ConcatenarPlanilhas() Dim wb As Workbook Dim ws As Worksheet Dim wsTodos As Worksheet 'Cria uma nova Pasta de Trabalho, que conterá a Planilha 'com todas as Planilhas concatenadas. Set wb = Workbooks.Add Set wsTodos = wb.Sheets(1) For Each ws In ThisWorkbook.Sheets rngUsado(ws).Copy Destination:=wsTodos.Range("A" & _ rngUsado(wsTodos).Rows.Count + 1) Next ws 'É necessário apagar a primeira linha da Planilha 'de Resumo porque ela começa a copiar as Planilhas 'na linha 2, e não na 1: wsTodos.Rows(1).Delete End Sub 'Função para determinar o UsedRange real de uma Planilha: Function rngUsado(ws As Worksheet) As Range With ws Set rngUsado = .Range("A1:" & _ .UsedRange(.UsedRange.Cells.Count).Address) End With End Function
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta Wagner dos Santos VasconcellosModerator quinta-feira, 10 de maio de 2012 17:05