VBA - Si la plage de cellule contient du texte alors envoi mail automatique

Bonjour à toutes et à tous,

J'ai besoin d'aide car je bloque sur une macro à faire et qui pourrait me changer la vie !

L'objectif ici serait d'envoyer un mail d'alerte automatique exemple : " Bonjour, il y a des commandes non-confirmés"

Malheureusement j'ai du mal à réaliser une macro permettant d'envoyer un mail automatique dès que sur une plage de cellule ("B15:H50") il y a du texte.

Une colonne sera dédié aux adresses mail : peut-on faire une liaison entre les adresses mails et la macro ?

Inversement, la contrainte serait de ne pas envoyer de mail auto si la plage de cellule ne contient pas de texte.

Je vous remercie !

Raphael.

forum excel

Hello,

Tu peux lancer une macro lorsque tu remplis la colonne CONF et la macro peut récupérer l'adresse mail située sur la colonne adresse mail de la même ligne et envoyé un mail.

Le problème c'est que si tu remplis la colonne CONF par un copier-collé, la macro ne se lancera pas.

Une autre solution peut être de faire un bouton à cliquer, la macro irait lire toutes les lignes de la colonne CONF, et enverrait un mail à chaque destinataire

Voici un exemple à adapter :

Sub mail_outlook_débutant() 'début du programme 'mail_outlook_debutant'
Dim OutApp As Object 'Déclaration de l'application objet Outlook
Dim OutMail As Object 'Déclaration du mail objet Outlook
dim i as integer
dim  colonneConf as integer
dim colonneMail as integer
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

colonneConf  = 8 'ici numéro colonne CONF
colonneMail  = 10 'ici numéro colonne adresses mail

for i = 2 to 50 'Boucle sur les ligne 2 à 50 
if cells(i,colonneConf ) <> "" then 
With OutMail 'début de la boucle
    .To = cells(i,colonneMail )

    .Subject = "ici l'objet"
    .Body = "ici le message du mail"

    .Display 'affiche le mail en brouillon dans Outlook, pratique
             'pour vérifier avant d'envoyer
    '.Send 'envoie directement le mail
    '.Save 'sauvegarde le mail

End With 'fin de la boucle
end if
next i
Set OutMail = Nothing 'nettoie la mémoire en nettoyant les variables
Set OutApp = Nothing 'nettoie la mémoire en nettoyant les variables
End Sub  'fin du programme

Bonjour,

Tout d'abord merci pour ta réponse.

Et pour l'inverse est ce que c'est possible de ne pas envoyer de mail si la plage de cellule est vide ?

Pour l'idée du bouton, je ne pourrais pas la mettre en place car l'objectif ici est de rendre le fichier 100% automatiser. ( ce qui est long à mettre en place pour un débutant ). C'est la dernière étape de cette automatisation.

Merci !

Le code que je t'ai fourni envoi un mail uniquement si la colonne CONF est remplie, sinon rien ne se passe.

Il faut que tu places ton code dans l'évènement change de la feuille de calcul. Mais comme je l'ai dit, si la colonne est remplie par copié collé ça ne fonctionnera pas.

Bonjour,

Merci pour ton aide.

Si par exemple j'ai plusieurs destinataires, peut-on créer un seul mail pour l'ensemble des destinataires n'ayant pas confirmés leurs commandes ? Au lieu d'envoyer un mail par destinataire car la plage de cellule contient 5 jours de commandes, il est possible d'avoir les mêmes destinataires.

Merci beaucoup !

Hello,

Oui, indique directement dans une cellule les adresse mail sous ce format :

toto@gmail.com;tutu@gmail.com;roro@gmail.com ect...

Rechercher des sujets similaires à "vba plage contient texte envoi mail automatique"