Envois d'un mail automatique en fonction d'un tableau excel

ielona -  
m@rina Messages postés 27957 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai un tableau de gestion des stocks et je souhaiterais que lorsque le niveau des stocks atteints un certain seuil un mail s'envoi de façon automatique.

en gros je voudrais que si les valeurs de C5 à O5 <= X alors envois d'un mail, alerte stock papier
Et que si les valeurs de P5 à W5 <= X alors envois d'un mail, alerte stock enveloppe.

Je n'ai aucune base en informatique, j'ai essayée de suivre ce qu'il ce dit sur d'autres forum mais je n'y arrive pas je ne comprends pas, je ne vois même pas ou je dois rentrer ce code. J'ai ajouter la référence VBA : Microsoft Outlook XO Object library.

1 réponse

  1. m@rina Messages postés 27957 Date d'inscription   Statut Modérateur Dernière intervention   11 570
     
    Bonjour

    Tu as besoin d'une macro événementielle qui va se déclencher lors d'un événement, et donc lors de la modification de la ou des cellules. Cette macro doit se trouver dans le code de la feuille et non pas dans un module. Pour cela tu fais un clic droit sur l'onglet de la feuille et tu choisis Visualiser le code.

    Puis tu peux copier coller le code suivant qui fonctionne avec Outlook. Si c'est pas Outlook, je ne sais pas comment ça peut fonctionner.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C5:O5", "p5:w5")) Is Nothing Then
    If Target <= x Then
    Dim ol As Object, monItem As Object
    Set ol = CreateObject("outlook.application")
    Set monItem = ol.CreateItem(0)
    monItem.To = "adresse_destinataire@xxxx.com "
    monItem.Subject = "Alerte stock papier"
    monItem.Body = "Bonjour" & Chr(13) & Chr(13) & "blabla"
    monItem.Send
    Set ol = Nothing
    MsgBox "Mail envoyé ! "
    End If
    End If
    End Sub


    A noter que je n'ai pas compris si le mail doit partir dès lors qu'une cellule est en dessous de la valeur, ou bien si c'est le total. Dans le deuxième cas, il faut juste modifier la macro.

    m@rina

    0