Página 1 de 1

VBA para Salvar PDF (cada página em um arquivo)

Enviado: 20 Nov 2019 às 14:32
por engrocha
Boa tarde!
Preciso de um código parar Salvar em PDF diferentes guias e páginas, sendo cada página em um arquivo PDF.

Se o total das páginas das diferentes guias for 12, preciso que a macro salve as 12 documentos em PDF cada um com somente uma página.

Grato,
Rocha.

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 20 Nov 2019 às 16:04
por Diego100ges
Boa tarde amigo, segue código, testa ai e me avisa se deu certo.
Código: Selecionar todos
Sub SalvaPDF()
    Dim PdfCaminho As String
    Dim PdfNome As String
  
    UltimaAba = ActiveWorkbook.Sheets().Count 'Conta quantas abas tem na planilha
    
    For i = 1 To UltimaAba
    
    PdfCaminho = VBA.Environ("USERPROFILE") & "\Desktop\" 'Diretório onde irá salvar o documento
    PdfNome = Range("a1").Value 'Aqui você precisa referenciar uma célula que irá dar nome a planilha, precisa ser a mesma célula em todas as abas, se o nome for repetido ele irá salvar por cima.
    
    'Caso queira uma mensagem de OK de aba por aba
    'MsgBox "O arquivo " & PdfNome & " foi salvo em " & PdfCaminho & ".", vbOKOnly, "Salvo"
  
    ThisWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    PdfCaminho & PdfNome, Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
    Call TrocaAba
    Next
End Sub

Sub TrocaAba()
    On Error Resume Next
    Dim x As Integer

    UltimaAba = ActiveWorkbook.Sheets().Count

    If ActiveSheet.Index = UltimaAba Then
        x = 0
    Else
        x = ActiveSheet.Index
    End If

    Workbooks("Pasta1.xlsm").Sheets(x + 1).Activate 'Nome da planilha
End Sub

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 20 Nov 2019 às 16:18
por engrocha
Prezado, não deu muito certo!
Pode aplicar a mesma em uma planilha e me enviar para eu verificar a funcionalidade.

Aplicando o código em questão ele salva sempre o mesmo documentos 05 vezes (o número de guias que tenho).

Grato,
Rocha.

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 20 Nov 2019 às 16:22
por Diego100ges
Segue;


Caso queria subir sua planilha com dados fictícios posso verificar nela, ficaria mais fácil.

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 20 Nov 2019 às 17:33
por engrocha
Boa tarde agradeço a ajuda, mas não é isso infelizmente.

Vou tentar explicar melhor:
Tenho 03 guias (nomes: Guia A, Guia B e Guia C)

1) A "Guia A" tem 03 páginas;
2) A "Guia B" tem 02 páginas;
3) A "Guia C" tem 05 páginas.

Dentre dessa condição, preciso de um VBA que confira a quantidade de páginas nessas 03 guias e crie 10 arquivos em PDF diferentes. Arq 01.pdf / Arq 02.pdf / Arq 03.pdf e assim sucessivamente até o Arq 10.pdf.

Cada página dentro dessas 03 guias seja um arquivo PDF.
Quero não ter o trabalho de gerar somente 01 pdf e ter que ir em um programa ou página de internet para separar página a página.

Grato!
Rocha.

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 20 Nov 2019 às 19:59
por Jimmy
Olá Engrocha,

Veja a planilha anexa. Há 2 opções de macro. Uma que exporta sempre as mesmas 3 planilhas, e outra que exportam as planilhas que estiverem selecionadas no momento da execução da macro.

Se esta mensagem colabora para a solução do problema, peço que dê um Like, clicando no botão com o "positivo" existente acima e a direita de cada mensagem.

Jimmy San Juan

O ARQUIVO ANEXO FOI APAGADO. NOS POSTS SEGUINTES HÁ UMA VERSÃO MAIS ATUAL.

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 21 Nov 2019 às 10:13
por engrocha
Mestre Jimmy, como já esperado um ótimo trabalho!
Aproveitando sua genialidade, consegue colocar para eu selecionar a pasta que os arquivos serão salvos?

Desde já agradeço,
Rocha.

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 21 Nov 2019 às 11:40
por Jimmy
Olá Rocha,

Esqueci de comentar que a macro grava na mesma pasta onde está a planilha.

Você quer escolher uma pasta e deixar fixa (sempre ela) ou a cada execução deseja escolher a pasta?

Se esta mensagem colabora para a solução do problema, peço que dê um Like, clicando no botão com o "positivo" existente acima e a direita de cada mensagem.

Jimmy San Juan

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 21 Nov 2019 às 12:13
por engrocha
Mestre Jimmy, boa tarde!
Desejo sempre salvar em um mesmo local.

Grato,
Rocha

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 21 Nov 2019 às 12:25
por Jimmy
Rocha,
Jimmy escreveu:Esqueci de comentar que a macro grava na mesma pasta onde está a planilha.
A macro tinha um erro e não estava gravando onde eu disse que estava (na pasta da planilha).

Vou fazer a alteração que pediu e já posto.

Qual versão vai usar? A que já tem os nomes das planilhas dentro da macro, ou a que exporta as planilhas que estiverem selecionadas na hora da execução?

Se esta mensagem colabora para a solução do problema, peço que dê um Like, clicando no botão com o "positivo" existente acima e a direita de cada mensagem.

Jimmy San Juan

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 21 Nov 2019 às 12:47
por engrocha
Boa tarde!
Uso a versão office 365.

Rocha

Re: VBA para Salvar PDF (cada página em um arquivo)

Enviado: 21 Nov 2019 às 13:17
por Jimmy
Rocha, boa tarde.
engrocha escreveu:Uso a versão office 365.
Minha pergunta era referente à versão da macro. A que roda com planilhas fixas, ou a que roda sobre as planilhas selecionadas no momento.
Já fiz pras duas.

Deixei, no início da macro, uma variável chamada Pasta, que indica qual pasta do Windows receberá os PDFs.

Coloquei provisoriamente C:\Temp, e você deve alterar para a que desejar.

Nas mensagens acima que você julgar que colaboram de alguma forma na solução do problema, peço que dê um Like, clicando no botão com o "positivo" existente acima e a direita de cada mensagem. Obrigado.

Jimmy San Juan