CONVERTENDO ARQUIVO DO EXCEL PARA PDF

MARCELODALTIO 20/11/2015 14:36:25
#454243
Tenho uma rotina que gera dados para uma planilha excel, porém o usuário me pediu para gerar em PDF agora, estou querendo salvar o arquivo em excel e depois fazer conversão.

Depois de pesquisar sobre o assunto, a solução mais próxima que encontrei foi a seguinte:

Set cPDFCreator = New clsPDFCreator
Set cPDFCreatorOptions = New clsPDFCreatorOptions
Set cPDFCreator.cOptions = cPDFCreatorOptions
[ô]Am storing default printer to restore it later
strDefaultPrinter = Printer.DeviceName
If cPDFCreator.cStart([Ô]/NoProcessingAtStartup[Ô]) = False Then
MsgBox [Ô]Can[ô]t initialize PDFCreator.[Ô], vbCritical + _
vbOKOnly, [Ô]Error![Ô]
Exit Sub
End If
objEx.ActiveWorkbook.Close False

With cPDFCreator
.cOption([Ô]UseAutosave[Ô]) = 1
.cOption([Ô]UseAutosaveDirectory[Ô]) = 1
.cOption([Ô]AutosaveDirectory[Ô]) = [Ô]D:\[Ô] [ô]ApiWindowsTemp()
.cOption([Ô]AutosaveFilename[Ô]) = [Ô]M[Ô] & strData & [Ô].pdf[Ô]
.cOption([Ô]AutosaveFormat[Ô]) = 0 [ô] 0 = PDF
.cSaveOptions
.cClearCache
.cPrinterStop = False
.cDefaultPrinter = [Ô]PDFCreator[Ô]
.cPrintFile [Ô]M[Ô] & strData & [Ô].XLS[Ô]
End With
Printer.Print

Set cPDFCreator = Nothing
Set cPDFCreatorOptions = Nothing

MsgBox [Ô]PDF Concluído![Ô], vbInformation

...


Rodei uma vez e funcionou, porém agora não está mais funcionando e não sei porque, está ocorrendo erro na linha
If cPDFCreator.cStart([Ô]/NoProcessingAtStartup[Ô]) = False Then
Está entrando nesse If e saindo da Sub.

Alguém sabe porque?
DS2T 20/11/2015 15:55:01
#454262
Reinicia o computador, rode de novo. Se funcionar, pode ser que algum processo continue rodando em background depois da subrotina ser executada. Aí você tem que observar qual processo que é iniciado quando você executa o código. Feche o processo e tente novamente. Se der certo, tudo que você precisa fazer é matar o processo via código.

Abraços!
GUIMORAES 21/11/2015 10:51:51
#454288
Você experimentou dar um dispose no objeto cPDFCreator?
Acredito que ele deve estar em execução, ou o arquivo não foi finalizado.
KERPLUNK 21/11/2015 15:26:07
#454299
Além do que já foi dito, veja o que diz a mensagem de erro. Provavelmente vai entender o porque de estar acontecendo...
MARCELODALTIO 26/11/2015 16:28:20
#454430
Obrigado a todos que tentaram me ajudar, infelizmente com aquele código eu não consegui resolver, mas encontrei esse abaixo

objWS.ExportAsFixedFormat Type:=xlTypePDF, FileName:=strMec, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Com ele, após montar o Excel eu salvo como PDF e depois fecho o Excel, está do jeito que preciso.
Faça seu login para responder