Envoi mail automatique destinataire différent via valeur cellule différente

Bonjour à tous,

J'ai un tableau avec des valeurs de stock évolutives (colonne D), et je souhaite qu'un mail automatique soit envoyé au responsable du stock (colonne E) si une de ces valeurs de stock passe un seuil (> 100 par exemple). J'ai trouvé un code VBA qui fonctionne pour la cellule D2 et qui génère un mail pour "utilisateur 1" et ce que je souhaite c'est générer un mail automatique à "utilisateur 2" si la colonne D3 dépasse 100, et ainsi de suite (utilisateur 3 pour la colonne D4, etc...).

J'ai essayé le copier/coller mais message erreur. Je débute totalement dans le domaine VBA, il a sans doute des fonctionnalités de répétition que j'ignore.

Merci pour vos retours.

Bonjour,

Essayez ceci, pas testé:

Dim xRg As Range
Dim Adr_Mail As String

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
    Set xRg = Intersect(Columns(4), Target)
    If xRg Is Nothing Then Exit Sub
    If IsNumeric(Target.Value) And Target.Value > 100 Then
        Adr_Mail = Target.Offset(0, 1).Value
        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 = "Test mail automatique" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
    On Error Resume Next
    With xOutMail
        .To = Adr_Mail
        .CC = ""
        .BCC = ""
        .Subject = "Test mail automatique"
        .Body = xMailBody
        .Attachments.Add ""
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

il vous faudra peut-être changer le corps du mail en fonction de ce que vous souhaitez envoyer.

Cdlt

Bonjour Arturo,

Merci pour ton retour rapide, effectivement tu as raison, je vais devoir modifier le corps de mail,

Malheureusement ta proposition ne génère pas de mail automatique,

J'ai remplacé la ligne suivante avec une adresse mail entre " " mais rien non plus,

.To = Adr_Mail
En tout cas, ça a l'air vraiment intéressant ces automatismes 😊

Il ne faut pas mettre l'adresse mail entre " " puisque c'est une variable.

De mon côté je ne peux pas tester car mon PC est protégé par un logiciel qui surveille toute anomalie ou certaines tentatives de connexions vers l'extérieur, donc il m'éjecte dès qu'il arrive sr la ligne "Set xOutApp = CreateObject("Outlook.Application")"

Faites l'essai suivant, sélectionnez la ligne indiquée ci-dessus et mettez un point d'arrêt(faire f9 sur cette ligne), puis revenez sur la feuille excel et mettez une valeur >100, la macro s'arrêtera sur cette ligne, continuez avec la touche f8 ou fn + f8. Que ce passe-t-il?

Cela me rouvre la fenêtre VBA avec ceci :

image

Mais rien de plus,

Je dois certainement mal m'y prendre, désolé

Le programme s'arrête sur la ligne marquée par le point d'arrêt c(est le but recherché,

maintenant, pour continuer manuellement Utilisez la touche F8 ou la combinaison des touches fn + f8, le programme se déroulera sous vos yeux en pas à pas (ou ligne par ligne si vous préférez.

A chaque avancement dans le déroulement du code, passez la souris(sans cliquer) sur tout ce qui est une variable, exemple: "wbNewLine", quel est la valeur retournée?

Rechercher des sujets similaires à "envoi mail automatique destinataire different via valeur differente"