Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
antolili
New Contributor

Générer un rapport et envoie automatique

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

6 Replies
ogautier62
Valued Contributor II

Re: Générer un rapport et envoie automatique

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 

antolili
New Contributor

Re: Générer un rapport et envoie automatique

Merci beaucoup, j'essaie cette macro et je vous tiens au courant si j'ai des questions.

Cordialement;

Antony Hoarau

ogautier62
Valued Contributor II

Re: Générer un rapport et envoie automatique

oui faut surement adapter un peu,

et en pré requis, SMPT sur le srv QV

cdt

antolili
New Contributor

Re: Générer un rapport et envoie automatique

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 ?

ogautier62
Valued Contributor II

Re: Générer un rapport et envoie automatique

a priori en personnal edition ça devrait etre capable d'envoyer un mail, faut essayer !

antolili
New Contributor

Re: Générer un rapport et envoie automatique

Il faut donc que je fasse avec mon propre serveur SMTP ?

Je vais essayer, je vous tiens au courant