Envoi de mail pat excel

Résolu
yhelard Messages postés 28 Statut Membre -  
yhelard Messages postés 28 Statut Membre -
Bonjour,

J'ai essayé cette macro:
Sub EnvoiMail()
  Workbooks("Essai.xlsx").SendMail Recipients:="adresse.valide@yahoo.com", _
                          Subject:="Test envoi classeur", _
                          ReturnReceipt:=True
End Sub

EDIT : Ajout des balises de code

mais cela ne marche pas.
Erreur:1004
La méthode send mail a échoué.

Merci de votre aide

11 réponses

  1. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724
     
    Bonjour,

    A priori lié à un problème de sécurité Outlook.
    Quand je teste cette macro, un message d'alerte de sécurité apparaît avec comme option par défaut : refuser. L'erreur 1004 apparaît avec cette option.
    0
    1. yhelard Messages postés 28 Statut Membre
       
      Bonjour
      Je ne comprends pas votre réponse/
      0
      1. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724 > yhelard Messages postés 28 Statut Membre
         
        0
  2. yhelard Messages postés 28 Statut Membre
     
    Bonjour
    Merci de la peine que vous vous donnez pour me répondre.
    Que puis-je faire pour supprimer ce blocage.
    Je n'ai pas installé outlook et je ne comprends pas pourquoi ce serait outlook qui bloque. Je me sers de gmail et yahoo.
    Bonne journée
    0
  3. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724
     
    Bonjour,

    Le souci est, je pense, que cette macro ne fait appel qu'à Outlook pour aller chercher le serveur de messagerie.

    Vous avez 2 solutions.
    1) La plus simple est d'installer Outlook et d'y définir vos comptes Gmail et Yahoo
    2) utiliser la bibliothèque Microsoft CDO WINDOWS (à ajouter via l'éditeur VBA --> outils --> références) en y définissant le serveur de messagerie Gmail comme exemple ci-dessous

    Sub envoi_email()

    Dim lobj_cdomsg As CDO.Message
    Set lobj_cdomsg = New CDO.Message
    'Add the Project Reference Microsoft CDO WINDOWS FOR 2000
    lobj_cdomsg.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
    lobj_cdomsg.Configuration.Fields(cdoSMTPConnectionTimeout) = 30
    lobj_cdomsg.Configuration.Fields(cdoSendUsingMethod) = cdoSendUsingPort
    lobj_cdomsg.Configuration.Fields.Update
    lobj_cdomsg.To = "Wallace.Evans@gwinnettcounty.com,raman.thiagarajan@gwinnettcounty.com"
    lobj_cdomsg.From = "raman.thiagarajan@gwinnettcounty.com"
    lobj_cdomsg.Subject = "filename Sent to www.???.com "
    lobj_cdomsg.TextBody = "File FTP LOG ATTACHED."
    lobj_cdomsg.AddAttachment ("\\server\filefolder\FTPlog.TXT")
    lobj_cdomsg.Send
    Set lobj_cdomsg = Nothing

    End Sub

    0
  4. yhelard Messages postés 28 Statut Membre
     
    Bonsoir
    Autre problème; ou puis-je trouver la library CDO WINDOWS FOR 2000 et sous quelle forme se présente-t-elle?
    Merci
    0
    1. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724
       
      Comme dit précédemment, elle se trouve dans l'éditeur VBA, dans le menu outils, puis le sous-menu références. Une fois trouvée, il suffit de la cocher pour qu'elle soit prise en compte dans toute macro VBA.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yhelard Messages postés 28 Statut Membre
     
    Justement, elle ne se trouve pas dans le sous menu références.
    je pense que je peux la télécharger sur internet, mais je ne la trouve pas. il y a plein de fichiers mais je ne sais pas lequel télécharger.
    0
  7. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724
     
    Il s'agit de la bibliothèque: cdosys.dll se trouvant dans c:\windows\system32

    Elle est a priori contenue dans l'installation d'Outlook.
    0
  8. yhelard Messages postés 28 Statut Membre
     
    Bonjour
    J'ai réussi à charger la librairie. Ca marche beaucoup mieux, mais maintenant, il se bloque sur le "send".
    Les adresses mail que j'ai mis sont bonnes. Pour le serveur de messagerie "smtp.gmail.com", je ne sais pas.
    L'erreur retournée est:-2147220973 (80040213)
    "Le transport a échoué dans sa connexion au serveur"
    Bonne journée et Merci
    0
    1. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724
       
      Passer par le serveur de messagerie Google est compliqué. Cela marchera sans problème si tu utilises le serveur de messagerie SMTP de ton FAI.
      Pour Free par exemple, smtp.free.fr ou SFR, smtp.sfr.fr ou Orange, smtp.orange.fr
      0
    2. yhelard Messages postés 28 Statut Membre
       
      Et bouygues, auriez-vous une idée du nom du serveur de messagerie.
      J'ai cherché sur mon PC mais je n'ai rien trouvé.
      Bonne soirée
      0
  9. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724
     
    via une recherche rapide sur Google,
    smtp.bouygtel.fr
    0
  10. yhelard Messages postés 28 Statut Membre
     
    Bonjour
    Je suis désolé mais le problème est toujours là avec smtp.bouygtel.fr
    Bonne joournée
    0
  11. thev Messages postés 2011 Date d'inscription   Statut Membre Dernière intervention   724
     
    Bonjour,

    réessayer alors avec le serveur smtp.gmail.com via ce code, qui fonctionne chez moi


    Sub EnvoiMail()
    'Add the Project Reference Microsoft CDO WINDOWS FOR 2000
    Dim cdo_msg As New CDO.Message

    'configuration message
    cdo_msg.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
    cdo_msg.Configuration.Fields(cdoSMTPConnectionTimeout) = 60
    cdo_msg.Configuration.Fields(cdoSendUsingMethod) = cdoSendUsingPort
    cdo_msg.Configuration.Fields(cdoSMTPServerPort) = 465
    cdo_msg.Configuration.Fields(cdoSMTPAuthenticate) = cdoBasic
    cdo_msg.Configuration.Fields(cdoSMTPUseSSL) = True
    cdo_msg.Configuration.Fields(cdoSendUserName) = "xxxxxxxxxx@gmail.com"
    cdo_msg.Configuration.Fields(cdoSendPassword) = "ppppppppp"
    cdo_msg.Configuration.Fields.Update

    'remplissage et envoi message
    cdo_msg.To = "adresse1"
    cdo_msg.From = "adresse2"
    cdo_msg.Subject = "filename Sent to www.???.com "
    cdo_msg.TextBody = "File FTP LOG ATTACHED."
    cdo_msg.AddAttachment ("C:\Users\nnnnnn\Documents\classeur1.xls")
    cdo_msg.Send

    'libération objet message
    Set cdo_msg = Nothing
    End Sub



    0
  12. yhelard Messages postés 28 Statut Membre
     
    C'est ok, ca marche.
    Merci
    0