Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde,
Preciso enviar emails para diferentes contatos de alguns relatórios do Qlikview, como não tenho o PDF Distribution e nem o NPrint a solução esta sendo por macro.
1-Consegui com a ajuda do post do Yuri gerar o arquivo PDF
2-não estou conseguindo enviar o emai
Poderiam me ajudar?
sub TesteEmail
Set objMsg = CreateObject("CDO.Message")
Set msgConf = CreateObject("CDO.Configuration")
'Server Configuration
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 'smtp do email
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "meu@gmail.com" 'seu email
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "minhasenha" 'senha
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
msgConf.Fields.Update
'End With
objMsg.To = "parameu@hotmail.com" 'email pra quem voce quer mandar
objMsg.From = "domeu@gmmail.com" 'seu email
objMsg.Subject = "teste qlikview"
objMsg.HTMLBody = "testando e-mail "
'objMsg.AddAttachment "C:\...\tabela.jpg"
objMsg.AddAttachment "C:\Users\twister\Desktop\PDF\TABELA_PRECO.pdf"
objMsg.Sender = "Mr. Name"
Set objMsg.Configuration = msgConf
objMsg.Send
msgbox("e-mail enviado")
Set objMsg = nothing
Set msgConf = nothing
end sub
Sub TabelaPreco
'Imprime Tabela de Preço
'Chamada da função passando os seguintes argumentos - 1: Nome do arquivo a ser gerado - 2: Nome do Report a ser gerado
PrintPDF "TABELA_PRECO", "RP01"
ActiveDocument.GetApplication.WaitForIdle
End Sub
Sub PrintPDF(ReportName, ReportID)
'Caminho a ser gerado o relatório encontra-se na variável
Path = ActiveDocument.Evaluate("vPathArquivos")
'Criando instância do PDFCreator
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
'Variáveis de configuração da biblioteca PDFCreator
With pdfjob
'Verificações da fila da impressora
If .cStart("/NoProcessingAtStartup") = False Then
If .cStart("/NoProcessingAtStartup", True) = False Then
'Caso não tenha nenhum objeto na fila de impressão, termina a macro.
Exit Sub
End if
'Caso tenha objeto na fila de impressão, torne a impressão visível
.cVisible = True
End If
.cOption("UseAutosave") = 1 'Permitir o Autosave
.cOption("UseAutosaveDirectory") = 1 'Permitir que grave no diretório
.cOption("AutosaveDirectory") = Path 'Caminho que será gravado o relatório
.cOption("AutosaveFilename") = ReportName 'Nome que será gravado o relatório
.cOption("AutosaveFormat") = 0 'Formato PDF
.cClearCache
'Finalizando as configurações da biblioteca PDFCreator
End With
'Imprime o relatório
ActiveDocument.PrintReport ReportID, "PDFCreator"
'Aguarde até que o processo entre na fila de impressão
Do Until pdfjob.cCountOfPrintjobs = 1
ActiveDocument.GetApplication.Sleep 20
Loop
pdfjob.cPrinterStop = False
'Aguarda até que a fila de impressão esteja vazia
Do Until pdfjob.cCountOfPrintjobs = 0
ActiveDocument.GetApplication.Sleep 20
Loop
'Termina o processo
pdfjob.cClose
'Zerando a variável
Set pdfjob = Nothing
End Sub
Caro Alessandro,
Estou usando seu exemplo.
Na hora que executo ele esta chamando.
Mas não conseguir entender como faço ele gravar na pasta.
alguma dica.
Agnaldo, esse codigo aqui Gera o arquivo .pdf e envia por email funciona corretamente
Lembre-se apenas de configurar o vPathArquivos no script do qlikview
exemplo: 'C:\Users\Yuri\Blog QlikView\Exportar em PDF (Macro)';
Sub TabelaPreco
'Imprime Tabela de Preço
'Chamada da função passando os seguintes argumentos - 1: Nome do arquivo a ser gerado - 2: Nome do Report a ser gerado
PrintPDF "teste", "RP01"
ActiveDocument.GetApplication.WaitForIdle
Email()
End Sub
Sub PrintPDF(ReportName, ReportID)
'Caminho a ser gerado o relatório encontra-se na variável
Path = ActiveDocument.Evaluate("vPathArquivos")
'Criando instância do PDFCreator
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
'Variáveis de configuração da biblioteca PDFCreator
With pdfjob
'Verificações da fila da impressora
If .cStart("/NoProcessingAtStartup") = False Then
If .cStart("/NoProcessingAtStartup", True) = False Then
'Caso não tenha nenhum objeto na fila de impressão, termina a macro.
Exit Sub
End if
'Caso tenha objeto na fila de impressão, torne a impressão visível
.cVisible = True
End If
.cOption("UseAutosave") = 1 'Permitir o Autosave
.cOption("UseAutosaveDirectory") = 1 'Permitir que grave no diretório
.cOption("AutosaveDirectory") = Path 'Caminho que será gravado o relatório
.cOption("AutosaveFilename") = ReportName 'Nome que será gravado o relatório
.cOption("AutosaveFormat") = 0 'Formato PDF
.cClearCache
'Finalizando as configurações da biblioteca PDFCreator
End With
'Imprime o relatório
ActiveDocument.PrintReport ReportID, "PDFCreator"
'Aguarde até que o processo entre na fila de impressão
Do Until pdfjob.cCountOfPrintjobs = 1
ActiveDocument.GetApplication.Sleep 20
Loop
pdfjob.cPrinterStop = False
'Aguarda até que a fila de impressão esteja vazia
Do Until pdfjob.cCountOfPrintjobs = 0
ActiveDocument.GetApplication.Sleep 20
Loop
'Termina o processo
pdfjob.cClose
'Zerando a variável
Set pdfjob = Nothing
End Sub
Sub Email
on error resume next
Const schema = "http://schemas.microsoft.com/cdo/configuration/"
Const cdoBasic = 1
Const cdoSendUsingPort = 2
Dim oMsg, oConf
' Propriedades do email
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "seuemail" ' ou "Nome do remetente <from@gmail.com>"
oMsg.To = "destinatario" ' ou "Nome do destino <to@gmail.com>"
oMsg.Subject = "Teste de VBscript"
oMsg.TextBody = "Envio anexo !!! Enjoy it"
oMsg.AddAttachment "Caminho anexo"
' Configuração e autenticação do seu servidor de SMTP BOL
Set oConf = oMsg.Configuration
'Endereço do servidor de SMTP
oConf.Fields(schema & "smtpserver") = "smtps.bol.com.br"
'Número da porta
oConf.Fields(schema & "smtpserverport") = 587
oConf.Fields(schema & "sendusing") = cdoSendUsingPort
'Tipo de autenticacao
oConf.Fields(schema & "smtpauthenticate") = cdoBasic
'Uso da Encriptação SSL
oConf.Fields(schema & "smtpusessl") = False
'Envia username
oConf.Fields(schema & "sendusername") = "seuemail"
'Envia password
oConf.Fields(schema & "sendpassword") = "suasenha"
oConf.Fields.Update()
' Envia mensagem
oMsg.Send()
' Retorna o status da mensagem
If Err Then
resultMessage = "ERROR " & Err.Number & ": " & Err.Description
Err.Clear()
Else
resultMessage = "Mensagem enviada com sucesso !!!"
End If
Wscript.echo(resultMessage)
End Sub
Alessandro,
Parabéns funcionou 100%
Toda a configuração está mesmo na PDFCreator.
Muito bom.
Estava procurando algo assim, faz tempo muito simples.
É automático e totalmente oculto.
Parabéns
Aonde salva o PDF está nas opções do PDFCreator.
A macro vai em disco buscar o PDF salvo pelo PDFCreator
De: Agnaldo neves
Enviada em: terça-feira, 15 de dezembro de 2015 15:48
Para: Alessandro Furtado <furtado@bildenservicos.com.br>
Assunto: Re: - Envio email Macro
<https://community.qlik.com/?et=watches.email.thread> Qlik Community
Envio email Macro
resposta de Agnaldo neves <https://community.qlik.com/people/agnaldoneves?et=watches.email.thread> em Qlik Brasil - Visualize a discussão completa <https://community.qlik.com/message/934626?et=watches.email.thread#934626>
Fernando uma pergunta.
Qual linha de código eu digo qual objeto vai para o pdf.
Na imagem abaixo do seu exemplo esta indo teste 123
Como faço para ir a tabela abaixo.
Fiz isso, não tinha lindo todo sua dica.
Funcionou 100%.
Obrigado
Agora preciso defini como escolhe qual objeto e posso enviar via pdf.
exemplo abaixo.
Fernando,
Deu tudo certo. Pensei que era um objeto.
Mas é um relatório.
Obrigado pela atenção!
objEmail.AddAttachment "C:\Geral\tmp\VENDAS.pdf"
Afurtado como faço para pegar a Variavel vAnexo1 e colocar
objEmail.AddAttachment "C:\Geral\tmp\vAnexo1.pdf" 'Preciso corrigir
para eu ter um resultado. C:\Geral\tmp\VENDAS2.pdf