Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#50422
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.
#50426
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
#50428
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.
#50429
Segue;


Caso queria subir sua planilha com dados fictícios posso verificar nela, ficaria mais fácil.
Você não está autorizado a ver ou baixar esse anexo.
#50432
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.
#50434
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.
Editado pela última vez por Jimmy em 21 Nov 2019 às 13:18, em um total de 3 vezes.
#50449
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
#50453
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
Editado pela última vez por Jimmy em 21 Nov 2019 às 13:19, em um total de 1 vez.
#50459
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
Você não está autorizado a ver ou baixar esse anexo.
RENANB agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord