Créer un PDF d'un feuille puis l'envoyer en e-mail

Cailloux50 Messages postés 88 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je vous expose ma situation :

J'aimerai avoir un bouton qui me permet de créer un PDF d'un feuille d'un classeur. Puis que je puisse l'envoyer par mail.

Après pas mal de recherche sur le forum, beaucoup passe par outlook sauf que m'a boite mail n'est pas sur outlook...

Si quelqu'un peut m'aider je suis preneur.

PS : je sais que si on fait "Fichier->Partager->Courrier électronique-> Envoyer en tant que PDF" est possible mais j'aimerai avoir ces fonctions automatique sur un bouton.

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    en vba:

    faire Alt F11 pour accéder à l'éditeur

    aller dans le ruban

    Insertion Module

    et coller ce code:

    'Après avoir ajouté la référence "Microsoft CDO for Windows 2000 Library" dans l'éditeur VBA Outils- Références
    Option Explicit
    Dim nom As String
    Dim chemin As String
    Sub envoimail()
    Save_pdf
    mail_en_direct
    End Sub
    Sub mail_en_direct()
    Const cdoBasic = 1
    Dim admail As String, i As Integer
    Dim messmail As String, secours As String
    Dim expediteur As String
       On Error Resume Next
          expediteur = InputBox("Adresse mail de l'Expéditeur", "ADRESSE ELECTRONIQUE", "lepivert@free.fr")
          admail = InputBox("choisir le destinataire", "DESTINATAIRE", "adresse du destinataire")
          messmail = "Bonjour,"
       With CreateObject("CDO.Message")
       If Err Then
          secours = MsgBox("Problème de CDO non installé sur le serveur")
          Exit Sub
       Else
          .From = expediteur
          .To = admail
         '.Bcc = ""
          .Subject = "Bonjour"
          .TextBody = messmail
          .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
          .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = expediteur
          .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "******" '" 'ton passeport windows live mail"
          .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
          .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr" 'attention mettre votre adresse messagerie
          .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
          .Configuration.Fields.Update
          .AddAttachment chemin & "\" & nom & ".pdf" 'chemin fichier joint
          .Send
          If Err Then MsgBox "Le message n'a pas pu être expédié."
       End If
       On Error GoTo 0
    End With
     MsgBox "le fichier a été envoyé"
    End Sub
    Sub Save_pdf()
    chemin = ActiveWorkbook.Path & "\" 'chemin du dossier destination à adapter
    nom = InputBox("Saisissez le nom du PDF : ", "NOM PDF", "essai")
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            chemin & nom & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            False
            MsgBox "Enregistrer" 'on peut supprimer
    End Sub
    


    ne pas oublier

    'Après avoir ajouté la référence "Microsoft CDO for Windows 2000 Library" dans l'éditeur VBA Outils- Références

    ensuite associer envoimail() à un bouton pour lancer la macro
    0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    outlook sauf que m'a boite mail n'est pas
    Et quel est le probleme si vous avez ou creez un compte Outlook?

    PS:
    Passe aussi par Outlook
    0