Envoyer un mail quand valeur mini atteint

Bonsoir à tous,

Donc voici mon problème. Je réalise une gestion des stock, j'ai donc une quantité de pièces en stock et j'ai également défini une quantité mini que j'ai mis sur une feuille excel sous forme de tableau et la gestion des flux est faite automatiquement via plusieurs userform.

Ma question est la suivante est ce qu'il serait possible d'envoyer un mail automatiquement pour crée une alerte lorsqu'une pièce atteint son stock mini.

Merci d'avance.

Bonjour,

L'aspect le plus important à traiter est celui de la construction de ton email ...

Une fois que tu auras franchi ce cap, il n' y aura pas de difficulté particulière à tester la condition de la valeur minimale atteinte pour déclencher ta macro ...

Merci pour ta réponse james007

Par contre je suis novice en VBA et je ne sait pas comment mis prendre pour déclencher un mail depuis VBA excel.

De plus je n'ai pas qu'une valeurs mais une grande quantité à définir.

Je me permet de mettre un bout de mon application pour que vous puissiez voir à quoi elle ressemble sa peut parraître plus clair certaine fois.

Merci pour votre aide.

Re,

Au bas de cette même page ... as-tu remarqué les six discussions "identiques" à ta question ...

Comment vois-tu y les choses ? à quel moment le mail sera-t-il envoyé, et à qui ? est-CE qu'il est envoyé lors que la useform est renseignée ? ou bien veux-tu un bouton séparé "rechercher les stocks mini et alerter", ou encore à l'ouverture du fichier ?

En faite j'aurais aimer que dès que l'on renseigne l'userform si la quantité atteint la quantitié mini ou est inférieur au stock mini alors cela déclenche un mail et l'envoi directement à la personne qui s'occupe des commandes de pièces.

Dans mon exemple il y'a que une seul Feuille dans la BDD mais je compte en mettre plusieurs car plusieurs secteurs à gérer.

Voila merci.

Mettre ceci dans module1

Sub envoi(Message As String)

Dim MonOutlook As Object
Dim MonMessage As Object

    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)

    destinataires = "yohann.Gestion@gmail.com"

    With MonMessage
        .To = destinataires
        .Subject = "Seuil atteint"
        .HTMLBody = Message
        .OriginatorDeliveryReportRequested = True
        .ReadReceiptRequested = True
        .Send
    End With

End Sub

Et modifier ceci

Private Sub Cmd_Valider_Click()
  If Not IsNumeric(Me.Txt_4) Then
    MsgBox "Valeur non mumérique"
  ElseIf LigneEnCours = 0 Then
    MsgBox "Veuillez choisir une pièce détachée"
  Else
    With Sheets("Prod")
      .Range("E" & LigneEnCours) = .Range("E" & LigneEnCours) + Me.Txt_4.Value
      Me.Txt_20 = .Range("E" & LigneEnCours)

' a customiser ............
    If Me.Txt_20 > .Range("G" & LigneEnCours) Then
        envoi "mettre texte ici avc les données comme :" & Me.Cbo_34
    End If
' fin ...............

    End With
    Me.Txt_4 = ""
  End If
End Sub

Bonjour,

Merci pour le code j'ai taper exactement comme vous mais rien ne se passe, aucun message d'erreur et je ne reçoit pas non plus de mail.

Bonjour,

As-tu mis la bonne adresse mail dans le code ?

Est-ce que la messagerie est bien sous outlook ?

Pour dédouaner le programme ajoute ceci :

  • d'abord la variable "destinataires" qui n'était pas déclarée
  • l'affichage du message qui sera envoyé
Sub envoi(Message As String)

Dim MonOutlook As Object
Dim MonMessage As Object
Dim destinataires As String

MsgBox Message

De toute façon si le programme n'a pas détecté que "destinataires" n'était pas déclaré, c'est qu'il n'a pas trouvé de valeurs inférieures au seuil ... Est-ce que le jeu de valeurs rentré permet d'avoir une quantité en stock plus faible que le mini ? rentre une valeur négative ...

Donc effectivement le soucis que je remarque c'est qu'il est possible d'avoir une quantité inférieur à 0 lorsque je met une quantité plus imporatante dans la textbox de droite.

Donc voila après je ne sait pas si les mail ne parte pas à cause de sa j'ai mis mon appli avec le code modifié.

Merci.

Ok, problème de transformation des données en numérique pour la comparaison ... multiplie par 1

Mets ceci dans ton test

    If Me.Txt_20 * 1 <= .Range("G" & LigneEnCours) * 1 Then

Pour Outlook, je n'ai pas complètement testé car je n'ai pas Outlook à la maison, mais c'est issu d'un de mes codes au travail.

Je pense que sa devrait fonctionner mais lorsque je lance mon appli tout ce passe bien jusqu'au moment de l'envoye ou sa me met debogage et sa me souligne le .Send dans mon module avec un message qui me dit que la zone A CC et CCI doivent contenir au moins un nom ou une liste de distribution donc je ne sait pas a quoi cela correspond .

et pourtant, tu as bien défini un destinataire :

Sub envoi(Message As String)

Dim MonOutlook As Object
Dim MonMessage As Object
Dim destinataires As String

    Set MonOutlook = CreateObjet("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)

    destinataire = "prenom.nom@hotmail.fr"

    With MonMessage
        .To = destinataire
        .Subject = "Seuil atteint"
        .HTMLBody = Message
        .OriginatorDeliveryReportRequested = True
        .ReadReceiptRequested = True
        .Send
    End With
End Sub

Change le .send et .display tu auras une vision, du mail à envoyer.

Bonsoir j'ai remplacer par display comme vous me l'avez conseillé, le destinataire est bien renseigne il y'a bien un message plus aucun problème ne s'affiche et pourtant toujours pas reçu de mail.

Je ne sait vraiment pas d'ou peut venir le soucis je v'ai chercher un peu si j'ai du nouveau de vous tiens au courant.

Merci.

Après affichage du message, il faut que tu l'envoie "manuellement" dans ce cas.

Il faut alors voir s'il est bien reçu.

Ensuite on pourra rechercher pourquoi le message ne s'envoie pas avec .send

Non même avec l'envoie Manuel le message ne part pas enfin en tout cas moi je ne reçoit rien pourtant je pense que dans le code tout est bien renseigner c quand même bizarre.

Le problème ne vient peut être pas du code mais de ma configuration Outlook.

la première chose à vérifier, c'est l'adresse du destinataire ! à tout hasard ...

sinon, est-ce que les mails "hors excel et hors macro" fonctionnent correctement ? il y a peut-être un problème de configuration smtp de ta messagerie.

Bonsoir a tous,

Je reviens vers vous car je suis toujours bloqué sur l'envoi des mails, malgré toute mes recherches de mon côté je ne comprend pas du tout ce qu'il se passe.

Si un âme charitable a une solution je suis vraiment preneur.

Merci.

Bonjour,

Toutes les explications que Steelson t'a données sont absolument parfaites ...!!!

Tout devrait normalement fonctionner ...

Il faut, donc, absolument que tu vérifies les derniers points qu'il t'a indiqués ... car il arrive qu'en faisant de nombreux tests avec Outlook ... on puisse arriver à altérer la configuration de base ...

Ok merci de la réponse James007,

Par contre je ne sait pas ce qui pourrait clocher avec Outlook comment peut on la configurer??

Rechercher des sujets similaires à "envoyer mail quand valeur mini atteint"