Notifications
Clear all

SALVAR EM PDF COM DATA

14 Posts
4 Usuários
0 Reactions
1,991 Visualizações
(@denilsonsl)
Posts: 0
New Member
Topic starter
 

Boa tarde Galera.

Como antes foi resolvido o codigo (abaixo), na imagem anexada mostra o erro que esta aparecendo quando executa o código, como pode ser resolvido?

Algume tem alguma ideia?

Sub Salvar_PDF()

ActiveWorkbook.Save

Plan19.Select

nome_arquivo = Range("a1").Value & " - " & _
Range("d20").Value & " - " & _
Range("e11").Value & " - " & _
Format(Range("d2").Value, "DD.MM.YYYY")

ChDir "P:EmbalagemPCPProgramação 2015IndustrializaçãoREMESSA 2016"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=nome_arquivo, Quality _
:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=1 = False

MsgBox "Remessa salva", vbInformation

End Sub

 
Postado : 25/02/2016 11:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Verifique se o PDF está aberto e feche-o !

 
Postado : 25/02/2016 11:15 am
(@denilsonsl)
Posts: 0
New Member
Topic starter
 

Fechei todos os PDF, mas aconteceu o mesmo erro...

 
Postado : 25/02/2016 11:30 am
(@setti)
Posts: 0
New Member
 

nome_arquivo = Range("a1").Value & " - " & _
Range("d20").Value & " - " & _
Range("e11").Value & " - " & _
Format(Range("d2").Value, "DD.MM.YYYY") & ".pdf"

 
Postado : 25/02/2016 12:02 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Corrija esse pedaço:

OpenAfterPublish:=1 = False

Para:

OpenAfterPublish:= False
 
Postado : 25/02/2016 12:03 pm
(@denilsonsl)
Posts: 0
New Member
Topic starter
 

Continua o mesmo erro... :(

 
Postado : 25/02/2016 12:20 pm
(@mprudencio)
Posts: 0
New Member
 

Da parte que esta em amarelo, apague tudo que esta em nome_arquivo.

 
Postado : 25/02/2016 2:33 pm
(@denilsonsl)
Posts: 0
New Member
Topic starter
 

Bom dia galera.

Estava verificando o erro do cogido, e constatei o seguinte:

O nome do arquivo que é salvo em PDF fica desta forma:

REMESSA E COBRANÇA - PASQUINI - 60000 - 20.2.16

Mas quando a palavra apos a REMESSA E COBRANÇA tem por exemplo: 2078/AMIDO PASQUINI da erro no momentO que o codigo é executado para salvar em PDF, como faço para corrigir esse código? Mesmo na palavra estiver / ou : ou ; é possível corrigi-lo ou adicionar um Format?

Sub Salvar_PDF()

ActiveWorkbook.Save

Plan19.Select

nome_arquivo = Range("a1").Value & " - " & _
Range("d20").Value & " - " & _
Range("e11").Value & " - " & _
Format(Range("d2").Value, "DD.MM.YYYY") & ".pdf"

ChDir "P:EmbalagemPCPProgramação 2015IndustrializaçãoREMESSA 2016"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=nome_arquivo, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

MsgBox "Remessa salva", vbInformation

End Sub

 
Postado : 26/02/2016 6:43 am
(@setti)
Posts: 0
New Member
 

a palavra 2078/AMIDO PASQUINI é um sub diretório ?? se for a barra está invertida!!!!

 
Postado : 26/02/2016 7:00 am
(@denilsonsl)
Posts: 0
New Member
Topic starter
 

a palavra 2078/AMIDO PASQUINI é um sub diretório ?? se for a barra está invertida!!!!

A palavra 2078/AMIDO PASQUINI não é sub...

A palavra 2078/AMIDO PASQUINI faz parte do TITULO DO PDF

Quando o codigo é "disparado" da erro por causa da barra que consta no titulo para salvar o PDF, exemplo:

Quando tenho um titulo dessa forma: REMESSA E COBRANÇA - AMIDO PASQUINI - 60000 - 26.2.16 , nã da erro

Mas quando esta dessa forma: REMESSA E COBRANÇA - 2078/AMIDO PASQUINI - 60000 - 26.2.16 , da erro no codigo por causa da barra que consta o tiltulo para salvar o PDF.

È esse erro que não consigo corrigir...

 
Postado : 26/02/2016 7:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Existem alguns caracteres proibidos pelo sistema operacional ( / : * ? < > | ) assim ao montar uma string para nome de arquivo deve-se ter o cuidado de substituir esses caracteres; pois se houver o sistema operacional irá rejeitar gerando assim o erro.
Substitua na fonte, caso não for possível avalie utilizar o Replace antes de tentar salvar.

 
Postado : 26/02/2016 8:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Essa é EXATAMENTE a razão pq eu queria ver o conteúdo da variável no outro tópico.
Pedi exemplos desse nome de arquivo...

Seu problema não é só as barras das datas, tb pode haver barras em outros locais !

E digo mais, se houver dois-pontos, barras, ou qquer coisa que não seja aceita em nome de arquivo, vai dar pau....

a rotina que vc precisa é essa:

'---------------------------------------------------------------------------------------
' Rotina....: ArrumarNomeParaArquivo() / Function
' Autor.....: Fernando Fernandes
' Contato...: fernando.fernandes@outlook.com.br
' Data......: 02/04/2015 (dmy)
' Empresa...: Planilhando
' Descrição.: Essa rotina corrige um texto para poder ser usado como nome de uma planilha *(ou arquivo)
'---------------------------------------------------------------------------------------
Public Function ArrumarNomeParaArquivo(ByVal NOME As String) As String
On Error GoTo TratarErro

    NOME = VBA.Replace(NOME, "", ".")
    NOME = VBA.Replace(NOME, "/", ".")
    NOME = VBA.Replace(NOME, ":", ".")
    NOME = VBA.Replace(NOME, "*", ".")
    NOME = VBA.Replace(NOME, "?", ".")
    ArrumarNomeParaArquivo= NOME 
    
On Error GoTo 0
Exit Function
TratarErro:
Resume Next
'    Call Excecoes.TratarErro(VBA.Err.Description, VBA.Err.Number, "Exportar.ArrumarNomeParaPlanilha()", Erl)
End Function
 
Postado : 26/02/2016 9:07 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cole o código acima *(minha function) no final do seu módulo...

E no seu código, faça assim:

Sub Salvar_PDF()

ActiveWorkbook.Save

Plan19.Select

nome_arquivo = Range("a1").Value & " - " & _
Range("d20").Value & " - " & _
Range("e11").Value & " - " & _
Format(Range("d2").Value, "DD.MM.YYYY") & ".pdf"

nome_arquivo = ArrumarNomeParaArquivo(nome_arquivo )

ChDir "P:EmbalagemPCPProgramação 2015IndustrializaçãoREMESSA 2016"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=nome_arquivo, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False 

MsgBox "Remessa salva", vbInformation

End Sub

ou seja, adicione essa linha:
nome_arquivo = ArrumarNomeParaArquivo(nome_arquivo )

Logo após a definição da variável !

 
Postado : 26/02/2016 9:41 am
(@denilsonsl)
Posts: 0
New Member
Topic starter
 

Perfeito, ficou showww...

Obrigado...

 
Postado : 26/02/2016 9:56 am