envoi de mail via vba

Neofalken

XLDnaute Junior
Bonjour la Communauté

Je cherche une solution à mon problème. J’ai cherché dans le forum (peut être pas assez bien ? ) mais je n’ai rien trouvé.

J’ai un fichier excel que plusieurs personnes utilisent.
J’ai créé une macro pour que ce fichier se ferme automatiquement en sauvegardant au bout de 2 minutes d’inactivité (car les gens ont tendance à oublier de le fermer). Jusque-là tout va bien.
J’aimerais qu’un mail soit envoyé à la personne si cela arrive.
Genre : « le fichier a été fermé automatiquement, veuillez vérifier vos données »

Donc il me faudra une ligne de programme ouvrant Outlook sur le pc de la personne et s’envoyant un mail à lui-même avec comme contenu le msg que j’ai précisé plus haut.

En résumé j'aimerais :
Ouvrir outlook (et si outlook est déjà ouvert ?)
Créer un email
Insérer automatiquement le destinataire ayant utilisé le fichier
Insérer l’objet (qui sera toujours le même)
Insérer le corps du message (qui sera toujours le même)
Expédier le msg automatiquement sans aucune validation à effectuer

Voilà. J’espère avoir été clair et vous remercie d’avance pour toute l’aide que vous pourrez m’apporter
 

Yohan

XLDnaute Occasionnel
Re : envoi de mail via vba

salut tiens un petit truc qui envoie un mail en cas de modification d'une case

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C2")) Is Nothing Then
'en dessous cela permet d'envoyer le mail
Dim OutApp As Object, OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "ton adresse" '<------ remplacer par l'adresse du destinataire
.Subject = "Modification de cellule"
.body = "La cellule C2 a été modifiée avec ce nouveau contenu: ----> " & Target & vbLf & "Le " & Format(Date, "dddd dd,mmm,yyyy") & vbLf & "à " & Format(Time, "hh:mm:ss")
' .Display 'pour voir et modifier ou envoyer supprimer l'apostrophe au début de la ligne
.Send 'Pour envoyer directement le mail
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
'fin de ce qui t'interresse
End If
End Sub
 

Neofalken

XLDnaute Junior
Merci bcp pour ton aide Yohan

ça fonctionne mais par rapport à mes besoins j'ai 2 soucis :
- Si outlook n'est pas ouvert cela ne l'ouvre pas pour envoyer le mail
- Le destinataire est une variable en fonction de celui qui utilise le fichier. Si par exemple c'est Jean qui a utilisé le fichier, l'email doit être envoyé à Jean, si c'est Paul, il doit être envoyé à Paul. donc comment trouver l'utilisateur et l'insérer automatiquement dans le destinataire du mail ?

En tous cas merci pour ton aide
 

Yohan

XLDnaute Occasionnel
Re : envoi de mail via vba

oui en faite j'ai pas encore trouver comment faire pour faire varier le destinataire car le problème n'est pas de lui entrer une variable mais de trouver l'adresse de l'instance outlook

Dim mNameSpace As Outlook.Namespace
Set mNameSpace = mOutlookApp.GetNameSpace("MAPI")
' cela ouvre outlook

et

while Appli.Explorers.Count < 0

wend

permet d'attendre que outlook s'ouvre

je regarde pour l'adresse c'est plus compliquer que prévu ^^
 

Discussions similaires

Réponses
2
Affichages
236
Réponses
5
Affichages
365

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 168
dernier inscrit
isidore33