Send email en fonction du contenu d'une cellule
Supsup
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
Supsup Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Supsup Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
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
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Excel : Remplir une cellule en fonction d'une autre ✓ - Forum Excel
- Comment creer un compte email - Guide
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
Date d'inscription
Statut
Membre
Dernière intervention
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