VBA : envoi d'un mail auto en fonction du contenu d'une cellule
minia
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Apres plusieurs jour de recherche je n'ai pas trouvé de réponse à ma question.
J'ai un tableau excel avec 3 colonnes, j'aimerai qu'une macro s'exécute automatiquement lorsqu'une cellule de la 3e colonne contient le texte "A valider" et envoi un mail contenant les textes écrit dans les 2 autres colonnes de la même ligne.
Exemple :
A1 B1 C1
A2 B2 C2
A3 B3 C3
Si C1 contient "A valider" -> envoi auto d'un mail contenant le texte "A1 et B1 sont disponibles" ou A1 et B1 sont les contenu des cellules.
Voila mon code actuellement :
Sub mail_auto_fin_procédure()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim L As String
L = "A valider" 'ne fonctionne que si c'est un nombre, j'ai une erreur de compilation quand c'est un texte
For L = "A valider" To Range("C65356").End(xlUp).Row
If Range("C" & L) = "A valider" Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strbody = "A1 et B1 sont disponibles"
On Error Resume Next
With OutMail
.To = "***@***"
.CC = ""
.BCC = ""
.Subject = "A vérifier"
.Body = strbody
.Display 'utiliser .Send pour l'envoi du mail
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End If
Next L
End Sub
Merci pour votre aide.
Apres plusieurs jour de recherche je n'ai pas trouvé de réponse à ma question.
J'ai un tableau excel avec 3 colonnes, j'aimerai qu'une macro s'exécute automatiquement lorsqu'une cellule de la 3e colonne contient le texte "A valider" et envoi un mail contenant les textes écrit dans les 2 autres colonnes de la même ligne.
Exemple :
A1 B1 C1
A2 B2 C2
A3 B3 C3
Si C1 contient "A valider" -> envoi auto d'un mail contenant le texte "A1 et B1 sont disponibles" ou A1 et B1 sont les contenu des cellules.
Voila mon code actuellement :
Sub mail_auto_fin_procédure()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim L As String
L = "A valider" 'ne fonctionne que si c'est un nombre, j'ai une erreur de compilation quand c'est un texte
For L = "A valider" To Range("C65356").End(xlUp).Row
If Range("C" & L) = "A valider" Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strbody = "A1 et B1 sont disponibles"
On Error Resume Next
With OutMail
.To = "***@***"
.CC = ""
.BCC = ""
.Subject = "A vérifier"
.Body = strbody
.Display 'utiliser .Send pour l'envoi du mail
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End If
Next L
End Sub
Merci pour votre aide.
A voir également:
- Envoyer une alerte mail depuis excel
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
- Excel compter cellule couleur sans vba - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
6 réponses
Bonjour,
Sub mail_auto_fin_procédure() Dim OutApp As Object Dim OutMail As Object Dim strbody As String Dim L As Long With Worksheets("feuil1") 'adaptez le nom de feuille derlig = Range("C" & Rows.Count).End(xlUp).Row For L = 1 To derlig strbody = "" If Range("C" & L) = "A valider" Then Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) strbody = .Range("A" & L) & " et " & .Range("B" & L) & " sont disponibles" 'On Error Resume Next With OutMail .To = "xxxxxxxx@xxxxxx" .CC = "" .BCC = "" .Subject = "A vérifier" .Body = strbody .Display 'visu @Mail '.Send ' pour l'envoi du @mail End With On Error GoTo 0 End If Set OutMail = Nothing Set OutApp = Nothing Next L End With End Sub
Bonjour,
Merci beaucoup pour ce code qui fonctionne très bien.
Cependant, je l'ai adapté pour envoyer un mail à chaque formateur mais ca envoie autant de mail que de fois ou le nom apparaît alors que je voudrais qu'il n'nvoie un mail que sur la dernière ligne ajoutée.
Est-ce possible ?
par exemple :
Cellule X31 : Vincent => envoie un mail
Cellule X32 : Vincent => envoie un mail (Alors qu’aujourd’hui ça envoie de nouveau le mail de la cellule X31 + X32 donc deux mails)
Merci beaucoup :)
Julien
Bonjour,
par exemple :
Cellule X31 : Vincent => envoie un mail
Cellule X32 : Vincent => envoie un mail (Alors qu’aujourd’hui ça envoie de nouveau le mail de la cellule X31 + X32 donc deux mails)
Pouvez mettre un fichier exemple a dispo car je suppose qu'il n'y a pas que Vincent
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Bonjour,
Merci beaucoup pour ta réponse.
Je peux te transmettre par mail ? car je ne peux pas me connecter à Cjoint avec mon portable pro !!.
J'ai deux soucis :
- Envoyer un mail (au formateur juste sur le dernier enregistrement)
- Je constate que ma fonction ne fonctionne que si mon classeur et ouvert sur la feuille "PowerBi" alors que dans l'idée c'est de jamais ouvrir le classseur et tout passer par "UserForm"
Merci encore !!
Bonjour,
Passez par la messagerie privee de ccm pour transmettre une adresse messagerie