Conversion feuille en pdf puis envoi par outlook

Résolu
Bonjour,

J'ai un fichier Excel 2010 avec plusieurs onglets.
Sur l'un d'entre eux 'KPIs' j'ai des TCD avec une source sur un autre onglet.
Je cherche à convertir l'onglet avec les TCD au format PDF pour l'envoyer par email via l'outlook de mon entreprise ; et si possible supprimer le pdf par la suite.
Sachant que le j'arrive à générer le pdf avec la date en variable.

Merci beaucoup pour votre aide

voici le vba que j'utilise :

Sub Envoyer_PDF_par_email()
Dim messageHTML
On Error GoTo errorHandler
'on crée le fichier PDF dans le même dossier que le fichier source
Sheets("KPIs").ExportAsFixedFormat Type:=xlTypexslm, Filename:= _
ActiveWorkbook.Path & "\" & "Suivi des templates_20151002.PDF" ' A modifier
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Fichier de suivi des templates"
objMessage.From = "mon_adresse_email.com" 'adresse mail de l'expéditeur n'est pas obligatoire
objMessage.To = mon_destinataire_email.com" 'Email du destinataire doit-être correct ici
objMessage.TextBody = "Bonjour," & vbCrLf & "Veuillez trouver en PJ le fichier de suivi des templates à date" & vbCrLf & "bonne réception"
piece_jointe = ActiveWorkbook.Path & "\" & "Suivi des templates_20151002.PDF" ' A modifier
messageHTML = "Ceci est un message en HTML"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail1.inetpsa.com" ' A modifier
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mon_adresse_email.com"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mon_mot_de_passe_session"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30

objMessage.Configuration.Fields.Update
objMessage.AddAttachment (piece_jointe) 'On ajoute la pièce jointe, il est possible d'envoyer plusieurs pièces
'objMessage.AddAttachment (piece_bis) 'dans ce cas on ajoute un objMessage.AddAttachement () par pièce
objMessage.Send
MsgBox "Le mail a été bien envoyé !"
'la feuille PDF créée est supprimée après l'envoi
Kill ActiveWorkbook.Path & "\" & "Suivi des templates_20151002.PDF" ' A modifier
'si erreur on sort de la procédure
Exit Sub
errorHandler:
'description de l'erreur survenue
MsgBox Err.Description
End Sub

2 réponses

  1. Contributeur
    Bonjour,

    Les données initiales ont été changées sur ce post :

    https://forums.commentcamarche.net/forum/affich-32598016-envoi-mail-outlook-avec-conversion-feuille-en-pdf#1

    @+ Le Pivert
    1
    1. Apparemment CDO n'est pas supporté par Outlook 2010, alors que je l'ai bien ajouté en références
      0
    2. @johannes26500Bonjour cs_Le Pivert,

      johannes26500: CDO n' a rien a voir avec Outlook
      0
  2. Bonjour,

    Avec CDO, vous n'utilisez pas Outlook !!!!!!!!!!!!!!!!!!!!!!
    -1
    1. comment faire alors ?
      0
    2. @johannes26500Re,

      envoi par Outlook: a vous de voir pour le nom de fichier variable

      Sub Envoyer_PDF_par_email()
          Dim OutApp As Object
          Dim OutMail As Object
          Dim texte As String, FichierPDF As String
          Dim I As String
          
          On Error GoTo errorHandler
          'on crée le fichier PDF dans le même dossier que le fichier source
          FicherPDF = "Suivi des templates_" & Variable_Date & ".PDF"
          Sheets("KPIs").ExportAsFixedFormat Type:=xlTypexslm, Filename:=ActiveWorkbook.Path & "\" & FichierPDF     ' modifie
      
          Set OutApp = CreateObject("Outlook.Application")
          Set OutMail = OutApp.CreateItem(0)
          On Error Resume Next
          With OutMail
              'messageHTML = "Ceci est un message en HTML"
              .To = "mon_destinataire_email.com" 'Email du destinataire doit-être correct ici
              .CC = ""
              .BCC = ""
              .Subject = "Fichier de suivi des templates"
              .Body = "Bonjour," & vbCrLf & "Veuillez trouver en PJ le fichier de suivi des templates à date" & vbCrLf & "bonne réception"
              ' You can add other files by uncommenting the following line.
              'Ex:.Attachments.Add ("C:\users/benzoplus/desktop/lm bad.pdf")
             .Attachments.Add ActiveWorkbook.Path & "\" & FichierPDF '  modifie
             'Ouvre Outlook et a vous de cliquer sur le bouton Envoyer
             .Display
             ' Envoi @Mail sans ouvrir Outlook
             '.Send
          End With
          ' Effacer les vairable objet
          Set OutMail = Nothing
          Set OutApp = Nothing
      
          MsgBox "Le mail a été bien envoyé !"
          'la feuille PDF créée est supprimée après l'envoi
          Kill ActiveWorkbook.Path & "\" & FichierPDF ' modifie
          'si erreur on sort de la procédure
          Exit Sub
      errorHandler:
          'description de l'erreur survenue
          MsgBox Err.Description
      End Sub
      0
    3. @f894009Merci beaucoup f894009
      ca fonctionne !
      0