Página 1 de 1

Não gera mais o PDF

Enviado: 25 Mar 2021 às 00:57
por SandroLima
Boa noite, colaboradores do fórum.

Venho pedir ajuda com uma macro que parou de funcionar como antes

Única alteração recente que foi realizada foi a troca de Excel 2013 para o 2019.

A Macro gera o PDF e abre ele ao final... e agora não o faz mais.

Não entendo pq não está funcionando... pelos prints dá para ver que ela nomeia a variável pdfOut como se estivesse funcionando normalmente... mas no final não gera o arquivo na pasta e muito menos o abre.

Uso bastante essa funcionalidade e peço ajuda encarecidamente a vocês.
Imagem
Imagem

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 01:05
por babdallas
Tenho Office 365. O código funcionou normalmente.

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 09:24
por SandroLima
Pois é...

Não sei como faço para arrumar isso.

Conversei com o técnico que fez o reparo do pc...

Ele disse que as únicas coisas que foram alteradas foram o Windows (passou do 8 para o 10) e o Office (que passou de 2016 para 2019).

Tenho um note com o Windows 10 e Office 2016 e lá a macro continua normal.

O curioso é que a macro roda normalmente aqui... mas quando procuro o arquivo na pasta destino ele não está lá e em nenhuma outra pasta.

O arquivo que recebe o nome "RECIBO.pdf" (pdfIn) aparece na pasta normalmente mas o pdfOut não é gerado.

Penso que o problema está nessa parte do código:
Código: Selecionar todos
    strExec = Chr(34) & Chr(34) & Pdtk & Chr(34) & " """ & pdfIn & """ background " & Chr(34) & _
    pdfStamp & Chr(34) & " output """ & pdfOut & """" ' Estrut. do comando
    
    Call VBA.Shell("cmd.exe /C " & strExec, vbMinimizedNoFocus) ' cmd chama o utilit.que converte
    
    Application.Wait (Now + TimeValue("00:00:06")) ' aguarda 6 seg.
    
    If Not Dir(pdfOut) = "" Then ' verf. se o arquivo existe
            
        'Call VBA.Shell("cmd.exe /C Start " & pdfOut, vbMinimizedNoFocus) 'cmd abre o pdf convertido
        ThisWorkbook.FollowHyperlink pdfOut
    
    Else
        
        MsgBox "O Arquivo não existe"
        
    End If
Acrescentei ao código as linhas:
Código: Selecionar todos
    Else
    
        MsgBox "O Arquivo não existe"
    
    End If
E ele retornou a msg de que o "O Arquivo não existe".

De que maneira posso contornar isso?

O tópico continua aberto se alguém souber o que posso fazer peço encarecidamente a ajuda de vcs. Uso muito essa funcionalidade.

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 10:03
por babdallas
Depois que vc gera.o RECIBO.pdf, qual o objetivo do restante do código?

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 10:28
por SandroLima
O "pdfOut" ele "estampa" o intervalo "A1:N49" em um PDF que contem uma marca dágua".

Ali na Macro o Arquivo no qual ele "estampa" o intervalo está descrito como:
Código: Selecionar todos
pdfStamp = "MARCA D'ÁGUA (RECIBO).pdf"
Diretamente falando ele "imprime" o Recibo em um papel timbrado.

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 10:59
por babdallas
O problema deve estar neste pdftk.exe. Não tenho este software instalado aqui para testar. Se vc fizer manualmente, funciona?

Pode ser que este software não esteja funcionando adequadamente após a troca de Windows 8 para Windows 10.

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 11:11
por SandroLima
Como eu testaria manualmente?

Não tenho certeza que seja o Windows 10... no notebook ele gera o arquivo normalmente e nele tenho o Windows 10 instalado.

Quer que eu lhe envie o pdftk.exe?

Para que a Macro funcione é necessário que estejam na mesma Pasta:
- a planilha (NÃO ABRE O PDF)
- o arquivo da Marca D'Água (MARCA D'ÁGUA - (RECIBO)), nesse caso usar qualquer PDF para teste
- o arquivo " libiconv2.dll"
- e o arquivo "pdftk"
Imagem

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 11:21
por babdallas
Este arquivo é um executável. Logo, imagino que ele tenha uma interface para o usuário mexer no pdf e fazer oq vc está fazendo via script no VBA.

Entrei no site do pdftk e veja na imagem que diz que é compatível até com Windows 8. Não cita o Windows 10.
Imagem

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 11:26
por SandroLima
Puxa vida!
Mas continuo achando que não é isso... como disse no meu note tenho Windows 10 e funciona.

Editei a resposta anterior.

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 11:29
por babdallas
Fica difícil saber sem ter um ambiente de teste apropriado, com todos os arquivos.

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 11:40
por SandroLima
Compactei os arquivos para o WinRar.... como faço para enviar?

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 11:47
por Kledison
@SandroLima

Para adicionar anexos no fórum, clique em +Resposta, depois em Adicionar Anexo, conforme imagens abaixo:

Imagem


Imagem

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 15:00
por SandroLima
Fiz mais alguns testes aqui e identifiquei em qual momento do código está acontecendo a falha mas ainda não sei como corrigir. Espero que possam me orientar.

A falha não está relacionada a versão do Windows ou a alteração da versão do office.

Foi feita no PC a instalação de um SSD (Diretório C:) e a pasta do Google Drive se encontra instalada nele.
Quando copio a pasta com os arquivos para a área de trabalho cujos arquivos estão no Diretório D: a macro funciona adequadamente gerando o pdfOut e abrindo o PDF.

A falha está na linha:
Código: Selecionar todos
Call VBA.Shell("cmd.exe /C " & strExec, vbMinimizedNoFocus) ' cmd chama o utilit.que converte
Quando rodo a macro da planilha que se encontra em uma pasta da área de trabalho (D:) a rotina acontece normalmente.

Porém quando rodo a macro da planilha que encontra em uma pasta do Google Drive (C:) a macro roda mas não fera e não abre o arquivo pdfOut.

Sabem como deveria proceder para voltar a funcionar normalmente mantendo a planilha na pasta do Google Drive?

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 15:58
por SandroLima
Vejam as duas pastas da imagem anexa

>>>>A pasta da esquerda ("TESTE EMISSOR") está na área de trabalho e armazenada no Diretório D:

- Aqui a macro executa normalmente

- Gera o PDF com a "estampa" (pdfOut) e depois o abre



>>>> A pasta da direita ("Google Drive") também está na área de trabalho e armazenada no Diretório C:

- Aqui a macro aparentemente executa normalmente, porém,

- Não Gera o PDF com a "estampa" (pdfOut) e não abre
Imagem

Acredito que o problema esteja relacionado à essa linha do código:
Código: Selecionar todos
Call VBA.Shell("cmd.exe /C " & strExec, vbMinimizedNoFocus) ' cmd chama o utilit.que converte

e ao local do armazenamento da pasta.

Re: Não gera mais o PDF

Enviado: 25 Mar 2021 às 18:48
por babdallas
Tenta fazer uma macro para copiar o arquivo do drive do google para uma outra pasta, faz a rotina e depois copia de volta para o google drive.

Re: Não gera mais o PDF

Enviado: 26 Mar 2021 às 12:38
por SandroLima
Hummm... é uma boa alternativa.

Isso pode ser interessante e resolver o problema. Pode ser útil para outras funcionalidades futuras também.

Poderiam me ajudar com essa macro?