Envoi d'e-mail autoumatique sous condition

Bonjour tout le monde,

Après plusieurs semaines de recherches, je n’arrive pas à trouver la solution à mon problème. Svp, j’aurais besoin de votre aide. En fait, ma problématique est que, quand j’inscris manuellement le chiffre 30 dans la colonne (E ), je reçois automatiquement un e-mail d’alerte sur Outlook. Cependant, dans la colonne (E), j’ai une formule qui calcule le nombre de jours ouvrables par rapport à la date inscrite sur la colonne (C), et quand la formule arrive au chiffre 30, je ne reçois pas d’e-mail.

Je vous remercie beaucoup pour votre collaboration,

Abdel551

Bjr,

capture d ecran 136

Bonjour Steelson,

Désolé: le mot de passe pour le VBA est 551

Un grand MERCI pour votre suivi.

Abdel551

Bonjour Steelson,

Vuillez trouver ci-joint le fichier sans code.

Un grand MERCI pour votre suivi.

Abdel551

quand j’inscris manuellement le chiffre 30 dans la colonne (E ), je reçois automatiquement un e-mail d’alerte sur Outlook. Cependant, dans la colonne (E), j’ai une formule qui calcule le nombre de jours ouvrables par rapport à la date inscrite sur la colonne (C), et quand la formule arrive au chiffre 30, je ne reçois pas d’e-mail.

Bonjour,

c'est donc ici que se passe le problème

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Application.Intersect(Range("E:E"), Target) Is Nothing Then
        If IsNumeric(Target.Value) And Target.Value = 30 Then
            Call Send_Email_Using_VBA
        End If
    End If
End Sub

Worksheet_Change s'applique sur les données et pas sur les résultats ... conclusion, c'est sur la colonne C qu'il faut faire le test de changement avec comme condition que la valeur sur E est 30

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Application.Intersect(Range("C:C"), Target) Is Nothing Then
        If IsNumeric(Target.Offset(0, 2).Value) And Target.Offset(0, 2).Value = 30 Then
            Call Send_Email_Using_VBA
        End If
    End If
End Sub

Tu peux aussi à l'ouverture du fichier re-balayer les différentes lignes et détecter s'il y a un 30 quelque part !

Bonjour Steelson,

Je vous remercie énormément. Ça marche à merveille UN TRÈS GRAND MERCI, c'est très sympa de votre part.

Une dernière question :

J’ai essayé de copier ton code pour l’appliquer à la colonne H et J, mais rien ne marche.

Merci encore,

Abdel55

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub

If Not Application.Intersect(Range("C:C"), Target) Is Nothing Then

If IsNumeric(Target.Offset(0, 2).Value) And Target.Offset(0, 2).Value = 30 Then

Call Send_Email_Using_VBA

End If

If Not Application.Intersect(Range("H:H"), Target) Is Nothing Then

If IsNumeric(Target.Offset(0, 7).Value) And Target.Offset(0, 7).Value = 30 Then

Call Send_Email_Using_VBA

End If

End If

End If

End Sub

pourquoi

Offset(0, 7)

?

Bonjour Steelson,

Merci beaucoup pour votre suivi.

Effectivement je me suis trompé, c'est Offset(0, 2). Cependand, je dois cliquer sur exucuter pour que je puisse recevoir l' E-mail, lorsque la cellule J=30. Je porte à votre connaissance que les valeurs de la colonne J dependent des dates qui sont dans la colonne H. Veuillez trouver ci-dessous votre code que j'ai modifié pour que je puisse recevoir l'E-mail quand j'ai une valeur=30 dans la colonne (C) ou dans la colonne (J).

Cordiallement,

Abdel551,

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub

If Not Application.Intersect(Range("C:C"), Target) Is Nothing Then

If IsNumeric(Target.Offset(0, 2).Value) And Target.Offset(0, 2).Value = 30 Then

Call Send_Email_Using_VBA

End If

If Not Application.Intersect(Range("J:J"), Target) Is Nothing Then

If IsNumeric(Target.Offset(0, 2).Value) And Target.Offset(0, 2).Value = 30 Then

Call Send_Email_Using_VBA

End If

End If

End If

End Sub

3bd.xlsm (32.96 Ko)

si ton script était correctement indenté on verrait mieux une erreur évidente

je me suis arrêté là, dis moi si cela résoud ton problème

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Cells.Count > 1 Then Exit Sub

    If Not Application.Intersect(Range("C:C"), Target) Is Nothing Then
        If IsNumeric(Target.Offset(0, 2).Value) And Target.Offset(0, 2).Value = 30 Then
            Call Send_Email_Using_VBA
        End If
    End If

    If Not Application.Intersect(Range("J:J"), Target) Is Nothing Then
        If IsNumeric(Target.Offset(0, 2).Value) And Target.Offset(0, 2).Value = 30 Then
            Call Send_Email_Using_VBA
        End If
    End If

End Sub
12bd.xlsm (28.65 Ko)

Bonjour Steelson,

Merci encore pour votre suivi,

Je viens de le tester, en gros, quand une cellule de la colone (C) arrive à la valeur=30, la condition est remplie, par la suite l'e-mail part.

Cependant, quand une cellule de la colone (J) arrive à la valeur=30 , la condition est remplie aussi mais l'e-mail ne part pas.

Cordialement,

Abdel551

je me suis arrêté là, dis moi si cela résoud ton problème

maintenant remplace J:J par H:H ... logique !

Bonjour Steelson,

Ça marche à merveille.

UN TRÈS, TRÈS GRAND MERCI !! Pour toutes les informations et les clarifications très utiles que vous m’avez apportés.

Je vous remercie encore pour votre patience et votre précieuse aide.

Abdel551

Rechercher des sujets similaires à "envoi mail autoumatique condition"