Envoi de mail pat excel [Résolu/Fermé]

Signaler
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020
-
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020
-
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

Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
541
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.
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

Bonjour
Je ne comprends pas votre réponse/
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
541 >
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

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
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
541
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

 
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

Bonsoir
Autre problème; ou puis-je trouver la library CDO WINDOWS FOR 2000 et sous quelle forme se présente-t-elle?
Merci
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
541
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.
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

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.
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
541
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.
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

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
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
541
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
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

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
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
541
via une recherche rapide sur Google,
smtp.bouygtel.fr
Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

Bonjour
Je suis désolé mais le problème est toujours là avec smtp.bouygtel.fr
Bonne joournée
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
541
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




Messages postés
11
Date d'inscription
lundi 5 décembre 2016
Statut
Membre
Dernière intervention
20 janvier 2020

C'est ok, ca marche.
Merci