Notifications
Clear all

Macro para salvar abas distintas do Excel

5 Posts
2 Usuários
0 Reactions
970 Visualizações
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Senhores boa tarde!
Gostaria de ajuda de vcs, por favor.
Tenho uma planilha em que a mesma contem varias abas com o mesmo nome, porem com um numero sequencial distindo.

Por exemplo:
Plan1, Plan2, Plan3, Plan4, Plan5

Eu criei uma macro em que eu consigo salvar cada aba dessa em PDF com seu respectivo nome, porem tive que digitar o código uma a uma alterando o nome de cada Aba.

Por exemplo:

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

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

E assim por diante.

O fato é que a planilha em que trabalho existem muitas abas e neste caso eu gostaria de saber se existe algum código em que a Macro reconheça a numeração de cada aba em um unico comando ao inves de ficar digitando uma a uma????

Desde já agraço.

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

Não testei, mas tente:

Trocar a linha:
Sheets("Plan1").Select

por

For Each Sheet In Workbook.Worksheets

 
Postado : 12/11/2013 12:43 pm
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

gtsalikis boa tarde e obrigado pela resposta.

Fiz a alteração proposta porem deu erro conforme abaixo:

O código ficou dessa forma:

For Each Sheet In Workbook.Worksheets
ChDir "C:UsersrodrigojDesktopTeste"
Nome_Arquivo = Range("e3").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nome_Arquivo, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

ERRO - ERRO DE COMPILAÇAO - FOR SEM NEXT

Com isso, fui e inseri um "Next", ai ficou assim:

For Each Sheet In Workbook.Worksheets
ChDir "C:UsersrodrigojDesktopTeste"
Nome_Arquivo = Range("e3").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nome_Arquivo, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Next

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

End Sub

E deu ERRO - ERRO EM TEMPO DE EXECUÇÃO - O OBJETO É OBRIGATÓRIO

Abraços,

 
Postado : 12/11/2013 1:08 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Bem, testei aqui, de outra forma

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

Nessa parte:

For i = 1 To 3

coloque os valores da primeira e da ultima planilha

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

Meu amigo!
Expetacular.

Sensacional soluçao!

Muito obrigado por sua ajuda, deu certinho. Abraços e mais uma vez obrigado.

 
Postado : 12/11/2013 1:46 pm