Envoie mail automatique VBA via Outlook
BJC80_1555
-
BJC80_1555 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
BJC80_1555 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Macro outlook envoi mail automatique
- Réponse automatique thunderbird - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Mail delivery system - Astuces et Solutions
- Programmer envoi mail gmail - Guide
- Supprimer adresse mail outlook - Guide