Send email en fonction du contenu d'une cellule
Supsup
Messages postés
12
Statut
Membre
-
Supsup Messages postés 12 Statut Membre -
Supsup Messages postés 12 Statut Membre -
Salut à tous,
Voilà, je gère actuellement un fichier de stock et en bref je souhaiterais que lorsque une cellule de mes colonnes F et N contiennent un chiffre qui est différend de 0, un envoi de mail automatique soit fait.
J'ai trouvé le code suivant sur le quel je me suis appuyé :
Mais n'étant pas expert en codage il y a des fonctions que je n'arrive pas à utiliser correctement.
Voilà, toute aide sera la bienvenue !
Voilà, je gère actuellement un fichier de stock et en bref je souhaiterais que lorsque une cellule de mes colonnes F et N contiennent un chiffre qui est différend de 0, un envoi de mail automatique soit fait.
J'ai trouvé le code suivant sur le quel je me suis appuyé :
Dim xRg As Range
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Rows.Count = 0 Then Exit Sub
Set xRg = Intersect(Range("F"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 0 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = "xxx@xxx"
.CC = ""
.BCC = ""
.Subject = "Commande à prévoir"
.Body = "Test"
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Mais n'étant pas expert en codage il y a des fonctions que je n'arrive pas à utiliser correctement.
Voilà, toute aide sera la bienvenue !
A voir également:
- Send email en fonction du contenu d'une cellule
- Fonction si et - Guide
- Local send - Télécharger - Divers Utilitaires
- Comment creer un compte email - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- [Excel 2010] Remplir cellule d'après contenu d'une autre ✓ - Forum Excel
3 réponses
Bonjour,
changement cellules F/N
changement cellules F/N
Set xRg = Intersect(Range("F:F,N:N"), Target)
Supsup
Messages postés
12
Statut
Membre
Merci pour ta correction.
Bonjour,
« je souhaiterais que lorsque une cellule de mes colonnes F et N contiennent un chiffre qui est différend de 0, ... »
Attention, l'évènement Change se produit uniquement lors de la saisie d'une valeur, il ne se produit pas lors du changement du résultat d'une formule.
Dans ce cas,
- soit il faut surveiller les cellules qui entrent dans la définition des formules (les antécédents),
- soit il faut utiliser un autre évènement (de préférence Calculate), avec un risque de ralentir les calculs, et il faut mémoriser les valeurs précédentes avec un risque de mobiliser beaucoup de mémoire vive.
« je souhaiterais que lorsque une cellule de mes colonnes F et N contiennent un chiffre qui est différend de 0, ... »
Attention, l'évènement Change se produit uniquement lors de la saisie d'une valeur, il ne se produit pas lors du changement du résultat d'une formule.
Dans ce cas,
- soit il faut surveiller les cellules qui entrent dans la définition des formules (les antécédents),
- soit il faut utiliser un autre évènement (de préférence Calculate), avec un risque de ralentir les calculs, et il faut mémoriser les valeurs précédentes avec un risque de mobiliser beaucoup de mémoire vive.
Oui, il faut modifier la ligne :
Set xRg = Intersect(Range("F"), Target) un peu comme l'a proposé f894009 (que je salue ...) mais en surveillant le changement dans la ou les colonnes où sont saisies les données qui entraînent la modification du résultat des formules des colonnes F et N (sans les formules difficile d'être plus précis).
J'ai une autre question également : comment fais-je pour insérer un lien réseau à l'intérieur de mon .Body ?
Mon code est actuellement :
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Bonjour," & vbNewLine & vbNewLine & _
"Une commande est à prévoir pour certains articles, merci d'accéder au file:///chemin_du_fichier." & vbNewLine & vbNewLine & _
"Cordialement."
On Error Resume Next
With xOutMail
.To = "xxx@xxx.fr"
.CC = "xxx@xxx.fr; xxx@xxx.fr"
.BCC = ""
.Subject = "Commande à prévoir"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub