Ir ao conteúdo

Excel macro gerador de pdf com nome de uma célula fixa


Ir à solução Resolvido por Basole,

Posts recomendados

Postado

Bom dia Pessoal,

Eu estou com uma planilha que possui uma macro geradora de PDF, porém não estou conseguindo fazer com que ela gere PDF com uma nome de uma célula fixa.

Gostaria também que essa Macro salvasse automaticamente este PDF destro de uma pasta, pasta esta que possui o mesmo nome que o PDF irá possuir, pois é o nome do cliente.

Sei que não um bicho de sete cabeças mas estou iniciando neste mundo do Excel kkkk

No momento estou utilizando este código.

 

Sub CONVERTER_PDF()

Dim NomPastTrab As String

NomPastTrab = VBA.Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ThisWorkbook.Path & "\" & NomPastTrab & ".pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
        
         
    End Sub

 

É bem simples e está quebrando meu galho mas ainda não é o que quero. Ele está salvando o PDF com o mesmo nome da planilha, e também assim que ele salva ele já abre o PDF mas eu não preciso disso,

Se ele apresentasse uma mensagem dizendo "PDF salvo" já estava de bom tamanho.
    

Postado

Veja se é isso que deseja....

Considerando que a celula em questão seja a A1

Na propriedade OpenAfterPublish:=False , alterei para falso, para não abrir o documento. 

 

 

Sub CONVERTER_PDF()

Dim NomPastTrab As String

   NomPastTrab = [A1] ' Altere se necessario
 
    If VBA.Dir(ThisWorkbook.Path & "\" & NomPastTrab, vbDirectory) = Empty Then
         ' Se não existir a pasta NomPastTrab, cria
        VBA.MkDir ThisWorkbook.Path & "\" & NomPastTrab
    
    End If

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ThisWorkbook.Path & "\" & NomPastTrab & "\" & NomPastTrab & ".pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False ' True
        
         
End Sub

 

 

 

Postado

Cara resolveu 90% do meu problema. Eu vi um monte de posts nesse fórum e sempre vi você resolvendo os problemas é muito bom saber que tu viu o meu kkkkk

As vezes, é necessário que eu faça mais de um modelo por cliente, porque as vezes eles devolvem mais de uma NF, porém se eu mando a macro criar um novo PDF para o mesmo cliente ela substitui o PDF antigo, teria como quando ela fosse criar um segundo PDF ela adicionar o número 1 na frente ou então 2 caso já exista o 1 e assim por diante?

Se não der não tem problema você já me ajudou muito e já te agradeço por isso.

  • Curtir 1
  • Solução
Postado
1 hora atrás, Murilo_Correa disse:

.....Eu vi um monte de posts nesse fórum e sempre vi você resolvendo os problemas é muito bom saber que tu viu o meu kkkkk ....

Obrigado!

 

Fiz as alterações, para ele não sobrepor o arquivo.

 

Veja se é isso: 

 

Sub CONVERTER_PDF()

Dim NomPastTrab As String
Dim num As Single
Dim Temp As String

   NomPastTrab = [A1] ' Altere se necessario
    
      
    If VBA.Dir(ThisWorkbook.Path & "\" & NomPastTrab, vbDirectory) = Empty Then
         ' Se não existir a pasta NomPastTrab, cria
        VBA.MkDir ThisWorkbook.Path & "\" & NomPastTrab
    
    End If
    
    Temp = NomPastTrab & ".pdf"
     
     '* Verifica se o PDF já existe *
    Do Until VBA.Dir(ThisWorkbook.Path & "\" & NomPastTrab & "\" & Temp, vbArchive) = ""
    num = num + 1
    '  caso existir acrescenta (1 numero)
    Temp = NomPastTrab & " (" & VBA.Format(num, "00") & ")" & ".pdf"
    Loop
    
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        ThisWorkbook.Path & "\" & NomPastTrab & "\" & Temp _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
        
         
End Sub

 

  • Curtir 1
Postado

Aqui pra mim rodou sem problemas e nos testes que fiz geraram mais de 10 arquivos PDF (n) diferentes.

 

Faça uma checagem, vendo a mensagem de erro...

verifique se o arquivo, a planilha que esta testando se está salva, caso contrario thisworkbook.path vai retornar em branco e gerar problema de diretorio.

Veja se os dados da celula C5 contem dados ou não contem caracteres especiais;

Enfim, no codigo não encontrei anomalias.

 

 

 

 

 

 

 

.

 

 

 

 

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!