Já me deparei algumas vezes com a necessidade de salvar uma ou mais planilhas (abas) de uma pasta de trabalho (arquivo do Excel).
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.
Segue o código
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
Mas está dando um erro, ele cria a pasta, mas não cria o arquivo do Excel, peço a ajuda de vocês.
Abraços
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 22/08/2014 10:31 am