Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tenho o código abaixo de uma macro, que está funcionando perfeitamente.
Precisava, trocar o nome do PDF Salvo.
QlikView Printing.pdf. igual na imagem
Algo que pudesse colocar ao lado do ID do Relatório.
a)Alguma dica, de como melhorar o código abaixo, para que posso escolher o nome do pdf.
b)Existe como salvar o mesmo pdf no mesmo email anexado.
Tipo dois anexos no mesmo email.
Estou usando PDFCreator. a enviar para ele ele enviar email automaticamente.
sub PrintReport
ActiveDocument.Reload
ActiveDocument.PrintDocReport "RP01","Teste"
ActiveDocument.PrintDocReport "RP02","Teste"
Set WSHShell = CreateObject("WScript.Shell")
fln = "S:\BI\TecnoFlex\PDF\myreport.pdf"
RegKey = "HKEY_CURRENT_USER\Software\QlikViewPDF\"
WSHShell.RegWrite RegKey & "BypassSaveAs", 1
WSHShell.RegWrite RegKey & "OutputFile", fln
ActiveDocument.GetApplication.Sleep 2000
WSHShell.RegWrite RegKey & "BypassSaveAs", 0
WSHShell.RegWrite RegKey & "OutputFile", ""
Set WSHShell = nothing
ActiveDocument.Save
ActiveDocument.GetApplication.Quit
end sub
Agnaldo,
segue o modelo com 3 no mesmo email.
Na macro, tem comentado aonde gera cada PDF e aonde renomeia eles. Fica mais facil se tiver que colocar ou tirar algum.
sub PrintReport
'ActiveDocument.Reload
ActiveDocument.PrintDocReport "RP01","Teste"
ActiveDocument.PrintDocReport "RP02","Teste"
Set WSHShell = CreateObject("WScript.Shell")
fln = "S:\BI\TecnoFlex\PDF\myreport.pdf"
RegKey = "HKEY_CURRENT_USER\Software\QlikViewPDF\"
WSHShell.RegWrite RegKey & "BypassSaveAs", 1
WSHShell.RegWrite RegKey & "OutputFile", fln
ActiveDocument.GetApplication.Sleep 2000
WSHShell.RegWrite RegKey & "BypassSaveAs", 0
WSHShell.RegWrite RegKey & "OutputFile", ""
Set WSHShell = nothing
ActiveDocument.GetApplication.Sleep 1000
Set filesys = Nothing
Set filesys = CreateObject("Scripting.FileSystemObject")
If filesys.FileExists("C:\QlikView Printing.pdf") then
filesys.MoveFile "C:\QlikView Printing.pdf", "C:\Relatório Gerente.pdf"
End If
ActiveDocument.GetApplication.Sleep 1000
ActiveDocument.Save
'ActiveDocument.GetApplication.Quit
end sub
Precisa somente atualizar o caminho aonde esta sendo gravado o PDF
na macro acima....
Alessandro,
Como ficou o código:
A unica coisa sentir de diferente é que o nome QlikView Printing_3.pdf, QlikView Printing_4.pdf, gerado pelo PDFCreator.
a)Será que existe como, os dois e-mail abaixo que gerou ele ficarem apenas em um e-mail com dois anexos.
b)Existe como eu trocar o nome QlikView Print? para um nome que eu queira.
filesys.MoveFile "C:\pdf\teste.pdf", "C:\pdf\teste1.pdf" (Parte do código abaixo)
Obrigado,
sub PrintReport
'ActiveDocument.Reload
ActiveDocument.PrintDocReport "RP01","Teste"
ActiveDocument.PrintDocReport "RP02","Teste"
Set WSHShell = CreateObject("WScript.Shell")
fln = "S:\BI\TecnoFlex\PDF\myreport.pdf"
RegKey = "HKEY_CURRENT_USER\Software\QlikViewPDF\"
WSHShell.RegWrite RegKey & "BypassSaveAs", 1
WSHShell.RegWrite RegKey & "OutputFile", fln
ActiveDocument.GetApplication.Sleep 2000
WSHShell.RegWrite RegKey & "BypassSaveAs", 0
WSHShell.RegWrite RegKey & "OutputFile", ""
Set WSHShell = nothing
ActiveDocument.GetApplication.Sleep 1000
Set filesys = Nothing
Set filesys = CreateObject("Scripting.FileSystemObject")
If filesys.FileExists("C:\QlikView Printing") then
filesys.MoveFile "C:\pdf\teste.pdf", "C:\pdf\teste1.pdf"
End If
ActiveDocument.GetApplication.Sleep 1000
ActiveDocument.Save
'ActiveDocument.GetApplication.Quit
end sub
1-Salvando o pdf.
2- 02 email gerando, gostaria que gera-se apenas um. com 02 anexos.
3-O nome do anexo de um e-mail.
Agnaldo,
Primeiro teria que desmarcar a opção de usar somente nomes únicos (esta na linha de cima da seta em vermelho da sua imagem)......Desta forma, o nome nunca sera o mesmo (possivelmente _1 , _2 , _3 esta sendo adicionado....). O nome que vai ser salvo por padrão podes mudar no PDFCreator.
Neste post
Tem a rotina que gera o arquivo, renomeia ele e envia por e-mail. Se você usar o envio do PDFCreator, sera sempre para o(s) mesmo(s) destinatários. Pela macro do post, você pode fazer com que seja gerado 1 e-mail para cada representante por exemplo e ele recebera somente as informações dele....E se quiser, poderá ainda mandar mais anexos juntos, inclusive PDF e XLS se quiser. Basta anexar mais arquivos.....
Alessandro,
Seu exemplo funcionou perfeitamente.
a)Apenas gostaria de saber como faço para enviar o relatório Teste do email2 - RP02
b)Onde no código do macro eu troco o nome do pdf salvo. Exemplo em vez do Relatório Gerente (Vendas do Dia)
c) Existe como eu anexar, mais pdf por email.
obrigado,
Agnaldo, esta funcionando.
Basta colocar server , user e senha do email e alterar a pasta que eu uso (tmp) para a sua (pdf).
Alessandro,
Está funcionando sim. 100%
Mas eu só gostaria de fazer salver dois Relatórios com anexos.
Exemplo abaixo tem 03 relatórios, RP01, RP02 e RP03
Existe como eu anexar os três no mesmo email.?
Agnaldo,
segue o modelo com 3 no mesmo email.
Na macro, tem comentado aonde gera cada PDF e aonde renomeia eles. Fica mais facil se tiver que colocar ou tirar algum.