titulo.jpg

Home

Principal

Assinar

 

Dicas

Excel

Word

Outlook

Office/VBA

Suplementos

Vídeos

Outros

Busque neste site:

Loading
 

Concatenar Várias Planilhas

Última atualização: 22/09/2011

Introdução

Referências

 

Introdução

Suponha que você tenha uma Pasta de Trabalho com várias Planilhas. Abaixo elas são mostradas.

Planilha Plan1:

Planilha Plan2:

Planilha Plan3:

Suponha que você queira criar uma nova Pasta de Trabalho para copiar todas as Planilhas, uma sobre a outra. Você pode usar a rotina abaixo:

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

Observe que há uma função auxiliar rngUsado. Ela retorna qual é o Range utilizado por Planilha sempre a partir do Range A1, já que apenas o UsedRange não considera endereços de linhas ou colunas vazias antes dos dados de uma Planilha. De forma mais simplificada, se você possui numa Planilha apenas uma tabela no Range C10:E20, o UsedRange retorna C10:E20 e a função rngUsado retorna o Range A1:E20.

O resultado final pode ser visto abaixo. Vale ressaltar que as bordas foram feitas por mim apenas para fins ilustrativos, já que a rotina funcionaria da mesma forma sem elas:

Caso a estrutura das Planilhas seja igual (ou seja, a coluna A de Plan1 tem valores da mesma natureza da coluna B de Plan2 e assim por diante), você pode usar essa rotina para criar uma lista mestra de várias Planilhas de uma Pasta de Trabalho.

Atenção: este exemplo mostra como concatenar Planilhas de apenas uma Pasta de Trabalho. Se quiser concatenar todas as Planilhas de todas as Pastas de um determinado caminho, clique aqui.

 

Referências

Para fazer o download de um exemplo (Pasta de Trabalho), clique aqui.

 

---

Site de Felipe Costa Gualberto.

Belo Horizonte, Brasil, 2009-2013.

felipe@ambienteoffice.com.br