Notifications
Clear all

Macro para salvar Abas distintas no Excel

10 Posts
3 Usuários
0 Reactions
2,832 Visualizações
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Senhores Boa Tarde!

Ontem solicitei a ajuda dos feras em Macro e fui prontamente ajudado pelo amigo gtsalikis que me mandou um codigo sensacional.
Na ocasião, minha duvida era de um codigo que pudesse salvar em PDF, uma a uma, varias Pabas distintas de uma planilha de Excel sendo que as abas estao nomeadas com o nome padrao Plan, o que difere era o numero sequencial. Ex: Plan1, Plan2, Plan3 etc..

O codigo que ele me passou e que funcionou perfeitamente foi este:

Dim i As Integer

For i = 1 To 3

Sheets("Plan" & i).Select
ChDir "C:UsersrodrigojDesktopTeste"
Nome_Arquivo = Range("f10").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nome_Arquivo, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Next

Hoje minha duvida é quase a mesma, a unica diferença é se eu consigo fazer o mesmo com as abas tendo NOMES diferentes. Ex: Financeiro, Fiscal, Contabil etc..

É possivel criar um codigo em que o Excel identifique cada aba e a salve em PDF??

Obrigado.

 
Postado : 13/11/2013 12:44 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Testei aqui e deu certo. Experimente

Dim planilha As Worksheet

For Each planilha In ActiveWorkbook.Worksheets

With planilha
ChDir "C:UsersrodrigojDesktopTeste"
Nome_Arquivo = .Range("f10").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nome_Arquivo, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With

Next

 
Postado : 13/11/2013 1:19 pm
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

gtsalikis Boa Tarde!

Fiz o teste, porem deu o seguinte erro:

ERRO EM TEMPO DE EXECUÇÃO 1004
O DOCUMENTO NAO FOI SALVO. TALVEZ ESTEJA ABERTO OU PODE TER OCORRIDO UM ERRO DURANTE A GRAVAÇÃO.

A linha apontada foi:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nome_Arquivo, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

atc,

 
Postado : 13/11/2013 1:50 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

hm, vc ainda tem o nome do arquivo na célula F10?

Ou o nome do arquivo tem que ser o nome da planilha?

 
Postado : 13/11/2013 2:00 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

não dá mais pra editar o post acima. :S

Se vc quiser que o nome da tua "aba" seja o nome do pdf, use:

Dim planilha As Worksheet

For Each planilha In ActiveWorkbook.Worksheets

With planilha
ChDir "C:Temporario"
Nome_Arquivo = planilha.Name
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nome_Arquivo, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With

Next

 
Postado : 13/11/2013 2:07 pm
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Boa noite gtsalikis!!

Muito obrigado pela ajuda mais uma vez. Funcionou perfeitamente.

A opçao de nomear os arquivos PDF com o nome da aba facilitou mais ainda. Voce é o cara.

Abraços e mais uma vez obrigado.

 
Postado : 13/11/2013 6:57 pm
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Bom Dia!
Caro gtsalikis, desculpe-me o incomodo.
Tive que reabrir o topico pois ontem ao testar o codigo encaminhado fiquei tao feliz que acebei por nao perceber um pequeno erro que esta ocorrendo.
O codigo esta salvando as Abas com seu devido nome, entratanto ela esta salvando exatamente a mesma Aba, ou seja, ela salva a mesma Aba com nomes diferentes.

Anexei um pequeno arquivo de exemplo para ficar mais claro o que esta ocorrendo.

Se poder me ajudar mais uma vez agradeço.

Abraços,

 
Postado : 14/11/2013 7:42 am
(@gtsalikis)
Posts: 2373
Noble Member
 

estranho

Em todo caso, fiz um remendo aqui, pra ela funcionar.

Tá meio corrido, mas depois posso rever o código e dar uma otimizada.

Dim planilha As Worksheet, nome As String

For Each planilha In ActiveWorkbook.Worksheets

nome = planilha.Name
Sheets(nome).Activate
ChDir "C:UsersrodrigojDesktopTeste"
Nome_Arquivo = nome
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nome_Arquivo, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Next

 
Postado : 14/11/2013 7:58 am
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Obrigado mestre.
Agora fiz o teste com calma e o resultado foi positivo. Agora sim esta salvando todas as abas perfeitamente com seu devido nome.

Muito obrigado pela ajuda!

 
Postado : 14/11/2013 8:10 am
(@pedroms)
Posts: 0
New Member
 

Olá pessoal,

Gostaria de saber se o mesmo código eu conseguiria alterar para que seja salvo em HTML, ao invés de PDF?

Saberiam me dizer se é possível, ou como faço pra salvar uma única aba em html?

Muito obrigado!

 
Postado : 24/02/2016 11:55 am