0160-Exportando planilhas de uma pasta de trabalho

Já me deparei algumas vezes com a necessidade de salvar uma ou mais planilhas (abas) de uma pasta de trabalho (arquivo do Excel).

Normalmente fazemos isto manualmente, clicando na aba de planilha com o botão de direito e movendo (ou criando cópia da planilha) numa nova pasta de trabalho.

Que tal automatizar este processo?

No exemplo de código a seguir, o Excel irá criar uma nova pasta (diretório) a partir da pasta que contém o arquivo com a macro para salvar as planilhas exportadas. Serão exportadas todas as planilhas da pasta de trabalho, cujo nome for diferente de MENU.

Sub ExportarPlanilhas()

'Declarar variáveis
Dim stCaminho As String
Dim stNomeArquivo As String
Dim stNomePlanilha As String
Dim stNovaPasta As String

'Capturar o endereço da pasta (diretório) que contém o arquivo
stCaminho = ThisWorkbook.Path

'Definir o nome da nova pasta a ser criada
stNovaPasta = "RELATORIOS"

stCaminho = stCaminho & "\" & stNovaPasta

'Criar uma nova pasta, dentro da pasta que contém o arquivo
'chamada RELATORIOS.
'Se a pasta já existir, o código seguirá para a linha seguinte
On Error Resume Next
MkDir stCaminho


'Capturar o nome do arquivo
stNome = ThisWorkbook.Name


'Loop para percorrer as planilhas do arquivo
For Each ws In ThisWorkbook.Worksheets
    
    'Capturar o nome da planilha
    stNomePlanilha = ws.Name
    
    'Testar se o nome da planilha é MENU
    If stNomePlanilha < > "MENU" Then
    
    'Se o nome for diferente de MENU, a planilha é movida para um
    'novo arquivo do Excel
    ws.Move
    
    'O novo arquivo é salvo, no formato do arquivo em uso pelo Excel
    'e seu nome é definido como o nome da planilha, seguida do nome do arquivo
    ActiveWorkbook.SaveAs _
    Filename:=stCaminho & "\" & stNomePlanilha & "-" & stNome, _
    FileFormat:=ThisWorkbook.FileFormat
    
    'O novo arquivo é fechado
    ActiveWindow.Close SaveChanges:=False
    End If
Next ws

End Sub

O arquivo com a solução pode ser baixado aqui: Export_Plan.xlsm

Anúncios

In Excel We Trust

Marcado com: , , ,
Publicado em Nível: Avançado
5 comentários em “0160-Exportando planilhas de uma pasta de trabalho
  1. Wagner Reis disse:

    Me dá uma ajuda. Copiei o código, porém não está funcionando. Consegue me ajudar?

    • Passe mais detalhes: como está tentando usar o código?

    • Uryell disse:

      Estava faltando o operador na condição que verifica se a planilha (nome) é diferente de “MENU”:

      Sub ExportarPlanilhas()

      ‘Declarar variáveis
      Dim stCaminho As String
      Dim stNomeArquivo As String
      Dim stNomePlanilha As String
      Dim stNovaPasta As String

      ‘Capturar o endereço da pasta (diretório) que contém o arquivo
      stCaminho = ThisWorkbook.Path

      ‘Definir o nome da nova pasta a ser criada
      stNovaPasta = “RELATORIOS”

      stCaminho = stCaminho & “\” & stNovaPasta

      ‘Criar uma nova pasta, dentro da pasta que contém o arquivo
      ‘chamada RELATORIOS.
      ‘Se a pasta já existir, o código seguirá para a linha seguinte
      On Error Resume Next
      MkDir stCaminho

      ‘Capturar o nome do arquivo
      stNome = ThisWorkbook.Name

      ‘Loop para percorrer as planilhas do arquivo
      For Each ws In ThisWorkbook.Worksheets

      ‘Capturar o nome da planilha
      stNomePlanilha = ws.Name

      ‘Testar se o nome da planilha é MENU
      If stNomePlanilha “MENU” Then

      ‘Se o nome for diferente de MENU, a planilha é movida para um
      ‘novo arquivo do Excel
      ws.Move

      ‘O novo arquivo é salvo, no formato do arquivo em uso pelo Excel
      ‘e seu nome é definido como o nome da planilha, seguida do nome do arquivo
      ActiveWorkbook.SaveAs Filename:=stCaminho & “\” & stNomePlanilha & “-” & stNome, FileFormat:=ThisWorkbook.FileFormat

      ‘O novo arquivo é fechado
      ActiveWindow.Close SaveChanges:=False
      End If
      Next ws

      End Sub

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: