none
Ajuda com Macro Excel

    Question

  • 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

    Thursday, February 23, 2012 12:28 PM

Answers

  • 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

    Monday, March 26, 2012 6:04 PM
  • 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").Select

    End 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

    Monday, March 26, 2012 12:04 PM

All replies

  • 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").Select

    End 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

    Monday, March 26, 2012 12:04 PM
  • 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

    Monday, March 26, 2012 6:04 PM