envoi mail document pdf

eddiestid

XLDnaute Nouveau
Bonjour à tous

Je voudrais savoir s'il était possible d'envoyer un document pdf via excel et vba, j'entends par là:
après l'exécution de mon programme, une ou 2 feuilles finales s'enregistrent au format pdf,
est-il possible d'envoyer cette ou ces 2 feuilles par mail sans logiciel de messagerie sur l'ordinateur ?

Merci ;)
 

Yaloo

XLDnaute Barbatruc
Re : envoi mail document pdf

Bonjour à tous,

Avec cette macro :

VB:
Option Explicit
Sub Envoi_Mail()
Dim OutApp As Object, OutMail As Object, Fichier$
   Set OutApp = CreateObject("Outlook.Application")
   Set OutMail = OutApp.CreateItem(0)
   ActiveSheet.Copy
   Fichier = ThisWorkbook.Path & "\" & ActiveSheet.Name & ".pdf"
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier
   ActiveWorkbook.SaveCopyAs Fichier
   On Error Resume Next
   With OutMail
     .to = "adresse mail du destinataire"
     .Subject = "Ton Objet"
     .Body = "Ton texte"
     .Attachments.Add Fichier
     .Display 'pour voir et modifier ou envoyer
    '.Send  'Pour envoyer directement
  End With
   On Error GoTo 0
   ActiveWorkbook.Close 0
   Kill Fichier
   Set OutMail = Nothing
   Set OutApp = Nothing
End Sub

A+

Martial
 

eddiestid

XLDnaute Nouveau
Re : envoi mail document pdf

@ Martial : merci pour ton code mais lors de l'exécution du programme, Outlook 2007 s'ouvre sur mon ordinateur or il n'est pas configuré avec mon adresse mail, on ne peut pas l'envoyer via hotmail (outlook à présent) sur internet par exemple ?
 

Dull

XLDnaute Barbatruc
Re : envoi mail document pdf

salut eddiestid, Claude5, le Forum

Oui c'est tout à fait possible
dans un Module
Pour enregistrer ta feuille en PDF
ici le nom de la feuille sera la date et la valeur de la cellule A1 soit "23-05-2013_LeDocumentàenvoyer"
Code:
Sub Enreg_Pdf()
Dim LaDate As String, LeParcours As String, LeRep As String
LeRep = ThisWorkbook.Path
LaDate = Format(Feuil1.[C1], "dd-mm-yyyy")
LeParcours = Feuil1.Range("A1").Value
Feuil1.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    LeRep & "\" & LaDate & "_" & LeParcours & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False
End Sub
en suite le code d'envoi sans logiciel de messagerie

Code:
Sub Envoi_CDO2()
Dim LaDate As String, LeParcours As String, LeRep As String
    Dim CdoMessage As Object
    Dim Fichier As Variant
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim iMsg As Object
    Dim iConf As Object
    Dim Flds As Variant
    Dim Feuille As String
 
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    LaDate = Format(Feuil1.[C1], "dd-mm-yyyy")
    LeParcours = Feuil1.Range("A1").Value
    LeRep = ThisWorkbook.Path

    Fichier = LeRep & "\" & LaDate & "_" & LeParcours & ".pdf"
    If Fichier = False Then Exit Sub

iConf.Load -1    ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.orange.fr" 'Mettre le smtp de la messagerie ici Orange
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With

    With iMsg
        Set .Configuration = iConf
        .To = "adresse mail du destinataire" 'le Destinataire
        .CC = ""
        .BCC = ""
        .From = "ton adresse mail"
        .Subject = "Le Document à envoyer"
        .TextBody = "Le corps de ton texte"
        .Fields("urn:schemas:mailheader:disposition-notification-to") = "" 'Pour notification de réception
        .Fields("urn:schemas:mailheader:return-receipt-to") = "" ' Pour confirmation de réception
        .AddAttachment Fichier
        .Fields.Update
        .Send
    End With


    'Pour éventuellement détruire le fichier envoyer de ton Poste
    'Kill Fichier 

End Sub

Bien entendu mettre les adresses exactes et le smtp de ton FAI pour que cela fonctionne

EDITION: Ouppps!!! Salut Martial :)

Bonne Journée
 

eddiestid

XLDnaute Nouveau
Re : envoi mail document pdf

@ Dull , j'ai modifié le code avec mes variables et des adresses mail, mais il y a un endroit où ça beugue, je n'arrive pas à le faire fonctionner, je ne peux pas joindre le fichier car il est trop lourd.
 

Dull

XLDnaute Barbatruc
Re : envoi mail document pdf

Salut Eddie, Martial, le Forum

Essaye le fichier joint
enregistre le sur ton bureau au préalable
change les adresses mail et ton smtp
chez moi cela fonctionne correctement

Bonne Journée
 

Pièces jointes

  • Essai Envoi PDF.xlsm
    26.2 KB · Affichages: 88

Yaloo

XLDnaute Barbatruc
Re : envoi mail document pdf

Salut Dull, Eddie, le forum,

Chez moi ça fonctionne il faut juste penser à changer le smtp en fonction de son FAI. Remplacer 25 par 587 (il parait que c'est universel)

A+

Martial

PS : Je me demande sur certain PC, s'il ne faut pas cocher la référence 'Microsoft CDO for Windows 2000 Library'
 

eddiestid

XLDnaute Nouveau
Re : envoi mail document pdf

Bonjour Martial, Claude,

J'ai bien reçu le fichier, mais quand je remplace les adresses ainsi que le smtp, j'obtiens ce message d'erreur (en pièce jointe)

Si quelqu'un veut que je lui envoie mon fichier il n'y a pas de problèmes, je butte sans cesse.

a+
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    63.4 KB · Affichages: 59
  • Sans titre.jpg
    Sans titre.jpg
    63.4 KB · Affichages: 71
  • Sans titre.jpg
    Sans titre.jpg
    63.4 KB · Affichages: 70

Discussions similaires

Statistiques des forums

Discussions
312 515
Messages
2 089 230
Membres
104 073
dernier inscrit
thierry.billotti