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

Fermé
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020 - 15 avril 2020 à 16:27
f894009 Messages postés 17229 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 21 janvier 2025 - 15 avril 2020 à 17:12
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.
A voir également:

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
15 avril 2020 à 17:12
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
f894009 Messages postés 17229 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 21 janvier 2025 1 712
15 avril 2020 à 17:12
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