Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Envoi d'email et PJ en VBA

JPaul78

XLDnaute Junior
Bonjour à la communauté,
J'ai un soucis qui me fait tourner en bourrique!
j'ai un programme VBA qui sort un facture en pdf et qui l'enregistre dans un répertoire. Sitôt après, je cherche à envoyer ce document par email (Gmail) avec le Pgm ci-après.
VB:
'Envoi d'email avec la facture en PJ
'il faut passer,email destinataire,email de l'émetteur,MdP emetteur, le chemin de la PJ en option
Sub Office365_Email(mailReferent As String, usermail As String, pwdSender As String, Optional FichierJoint As String)
Dim objMessage, objConfig, Fields
Set objMessage = CreateObject("CDO.Message")
Set objConfig = CreateObject("CDO.Configuration")
Set Fields = objConfig.Fields

With Fields
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.office365.com"
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = usermail
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = pwdSender
    '.Item("http://schemas.microsoft.com/cdo/configuration/sendtls") = False
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    .Item("http://schemas.microsoft.com/cdo/configuration/cdoSMTPConnectionTimeout") = 60
    .Update
End With
Set objMessage.Configuration = objConfig

With objMessage
    .Subject = [Obj_Mail] & [Text_Saisie_Fact]
    .From = usermail
    .To = mailReferent
    .CC = usermail
    ' .BCC = "copie_cachee@exemple.com"
    ' .Importance = 2 ' Urgent
    '.HTMLBody = "<h1>Test Message depuis excel</h1>" ''ou    .TextBody = Corps
    .TextBody = [Messag_Mail]
    If Len(FichierJoint) <> 0 Then .AddAttachment (FichierJoint)
    .Send
End With
Set objMessage = Nothing
Set objConfig = Nothing
Set Fields = Nothing

MsgBoxX "Le message a été envoyé à " & mailReferent, vbInformation, DelayOfResponse:=2

' Libérer les objets CDO
Set iMsg = Nothing
Set iConf = Nothing
End Sub

Tout se déroule bien sauf pour la pièce jointe qui me dit que le fichier est introuvable (voir la capture d'écran) malgré qu'il existe vraiment dans le répertoire et réalisé quelques lignes de code avant .
Par contre, le passage de la PJ se déroule bien si je met en direct le chemin du ficher (par ex "C:\Users\JPaul\Documents\Fax\Facture Num 8 du 2023_12_11.pdf" à la place de la variable "FichierJoint") alors que ce même chemin déclarait une erreur le coup d'avant.
Si vous avez des idées je vous remercie par avance de votre aide
JPaul
 

Pièces jointes

  • Capture d'écran 2023-12-12 214937.png
    8.6 KB · Affichages: 9
Dernière édition:
Solution
Bonjour à tous,
Après une journée perturbée et une bonne nuit de sommeil, j'ai trouvé l'erreur. Le programme fonctionne bien... si on lui passe les bons arguments. Dans mon cas, il manquait l'extensions "pdf" d'où l'erreur.
Merci à ceux qui ont passé du temps sur mon sujet.
Je clos la discussion

JPaul78

XLDnaute Junior
Merci kiki29, ce site est intéressant mais il ne parle pas de PJ et pour le reste, c'est fait dans mon code. Ce code fonctionne et j'ai pu envoyer des PJ. Le pb survient lorsque je déroule l'ensemble du code, réalisation et enregistrement du pdf, puis le code que j'ai partagé. c'est comme si VBA ne voyait pas le fichier pdf fraichement enregistré.
 
Dernière édition:

JPaul78

XLDnaute Junior
Bonjour à tous,
Après une journée perturbée et une bonne nuit de sommeil, j'ai trouvé l'erreur. Le programme fonctionne bien... si on lui passe les bons arguments. Dans mon cas, il manquait l'extensions "pdf" d'où l'erreur.
Merci à ceux qui ont passé du temps sur mon sujet.
Je clos la discussion
 

Discussions similaires

Réponses
1
Affichages
501
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…