Envoie mail automatique VBA via Outlook

BJC80_1555 - 19 févr. 2022 à 17:41
BJC80_1555 Messages postés 9 Date d'inscription samedi 19 février 2022 Statut Membre Dernière intervention 22 février 2022 - 22 févr. 2022 à 12:43
Bonjour,

Je suis étudiant et débutant en programmation. J'ai une préoccupation majeure et je viens solliciter une aide bienveillante des personnes mieux éclairées.

En effet, sur un fichier Excel, j'ai la colonne B qui liste les noms de mes Techniciens (6 au total), la colonne F, liste les noms des sites (270 au total) sur lesquels ils doivent intervenir en cas de soucis.

- Première problématique : chaque technicien intervient sur plusieurs sites (environ 45 par personne) les noms se répètent (sur plusieurs ligne) donc dans cette colonne.

- Deuxième problématique est que : les colonnes X, Z, AC et AE, remontent les signaux d'alerte (0 pour normal et 1 pour défaut signalé) tels que si au moins l'une de ses colonnes est >= 1, ceci déclenche l'envoie automatique du mail seulement au(x) technicien(s) concerné(s) en signifiant dans le mail, le nom du site concerné ainsi que la colonne affichant le défaut.

Par contre, si X, Z, AC et AE = 0 ; ne rien faire

En gros, le mail doit être déclenché dès que l'une de ces quatre colonnes change d'état de 0 à 1

Je suis arrivé à écrire un code qui envoie un mail, mais je n'arrive pas deux chose :

à l'automatiser sans une action sur un bouton "envoyer " par exemple et à intégrer toute les conditions ci-dessus énumérées.

Je vous prie de bien vouloir m'aider. Merci d'avance.

Mon code actuel :

Sub Automatisation_des_mails()

Dim LeMail As Variant 'Déclaration de variables.

Set LeMail = CreateObject("outlook.Application") 'Création d'un objet Outlook.


With LeMail.CreateItem(olMailItem) 'Début de la boucle

'Sujet principal du message.
.Subject = "Alerte maintenance Indicateurs : Vous avez sans doute une intervention à
effectuer"

'Adresse(à qui envoie t-on le mail) du destinataire.
.To = Range("D15") 'Champs envoyer à

'Contenu(détails)mail.
.Body = "Bonjour " & Range("B15") & "," & vbCrLf & " " & vbCrLf & "Un indicateur te concernant est à corriger sur le " & Range("X15") & "." & vbCrLf & " " & vbCrLf & "Prière d'aller consulter ton tableau de bord sous : Q:\man\\Suivi-travaux.xlsx" & vbCrLf & " " & vbCrLf & "Cordialement," & vbCrLf & " " & vbCrLf & "Le système de maintenance." & vbCrLf & "Ne pas répondre, ceci est un mail automatique."

.Display 'Affiche le mail en brouillon dans Outlook, pratique pour vérifier avant d'envoyer
'.Send 'Envoie directement le mail

End With


End Sub
A voir également:

25 réponses

f894009 Messages postés 16862 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 janvier 2023 1 679
19 févr. 2022 à 18:07
Bonjour,
Vos colonnes de défaut changent par quel moyen, saisie manuelle ou automatique par une application externe ?
2