Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à toutes et à tous,
Voici mon soucis : J'aimerais générer un rapport automatiquement, l'enregistrer en PDF ou en EXCEL (c'est une "Zone table") puis l'envoyer par mail automatiquement, 1 fois par jour. Pour générer le rapport je vais dans "Editer un rapport".
Après quelques recherches je n'ai trouvé que comme solution (sauf si j'ai mal cherché) l'utilisation de "NPrinting" mais il faut une licence. J'ai vu aussi qu'on pouvait utiliser un script VBS, ou alors PDF-Echange mais là aussi il faut une licence.
Avez-vous une autre solution que celles-ci ? (Non payante)
Je vous remercie d'avance,
Cordialement
Antony Hoarau
Bonjour,
voilà deux macros,
pour les envoyer utiliser les actions,
par exemple en post load
cdt
sub ExportExcel (NomRapport)
set XLApp = CreateObject("Excel.Application") 'on définit l'objet
XLApp.Visible = false
set XLDoc = XLApp.Workbooks.Add 'on ajoute un element
'XLDoc.Worksheets(3).Delete 'on supprime les feuilles qui ne nous intéresse pas
'XLDoc.Worksheets(2).Delete 'celle-là aussi
set table = ActiveDocument.GetSheetObject(NomRapport)
table.CopyTableToClipboard true 'on copie dans le presse-papier
set XLSheet = XLDoc.Worksheets("Feuil1") 'on se met sur la feuille qui nous intéresse
XLSheet.Paste XLSheet.Range("A1") 'on colle le presse-papier à partir de la première cellule (A1)
XLSheet.Name = "Chart " 'on renomme la feuille
XLDoc.SaveAs "I:\Qlik\tests\" & NomRapport & ".xls" 'on enregistre dans un fichier
XLDoc.close
XLApp.Quit
end sub
function mailrapport(Destinataire,Objet,Libelle,Fichier)
Dim objEmail
Const cdoSendUsingPort = 2 ' Send the message using SMTP
Const cdoAnonymous = 0 'Do not authenticate
Const cdoBasic = 1 'basic (clear-text) authentication Const cdoNTLM = 2 'NTLM
SMTPServer = "your smtp-server.fr"
Const SMTPPort = 25 ' Port number for SMTP
Const SMTPTimeout = 60 ' Timeout for SMTP in seconds
'Sending mail
Set objEmail = CreateObject("CDO.Message")
Set objConf = objEmail.Configuration
Set objFlds = objConf.Fields
With objFlds
'---------------------------------------------------------------------
' SMTP server details
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoAnonymous
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = SMTPTimeout
.Update
'---------------------------------------------------------------------
End With
objEmail.To = Destinataire 'Email Recipient
objEmail.From = "your e-mail organisation" 'Email Sender
objEmail.Subject = Objet ' Subject
objEmail.TextBody = Libelle 'Text Body
objEmail.AddAttachment Fichier ' Attachement
objEmail.Send
Set objFlds = Nothing
Set objConf = Nothing
Set objEmail = Nothing
end function
Merci beaucoup, j'essaie cette macro et je vous tiens au courant si j'ai des questions.
Cordialement;
Antony Hoarau
oui faut surement adapter un peu,
et en pré requis, SMPT sur le srv QV
cdt
Je n'ai pas de serveur qlikview, en fait j'ai sur une machine virtuel qlikview d'installer mais en personnal edition. Est ce que si je fais un serveur à côté ça peut fonctionner ?
a priori en personnal edition ça devrait etre capable d'envoyer un mail, faut essayer !
Il faut donc que je fasse avec mon propre serveur SMTP ?
Je vais essayer, je vous tiens au courant