Envoi de mail personnalisé si la ligne passe en couleur

Bonjour,

Vous serait-il possible SVP de me venir en aide ?

Je rencontre un souci sur un code VBA et j'ai bien cherché sur les forums et sauf erreur de ma part je ne pense pas avoir trouvé ce que je cherche de similaires.

Voici mon projet : j'ai une base de données dans laquelle j'ai indiqué des formules.

Exemple : si je saisis en colonne AJ une date, la colonne AK se remplit automatiquement par une formule et indique P pour payer et passe en couleur verte (MFC).

Je souhaiterais que dès lors que la ligne passe en vert, un mail soit envoyé à l'intéressé, adresse mail se trouvant en colonne M. J'ai commencé à indiquer un code mais je bloque sur la condition, mail à envoyer à l'intéressé concerné seulement?

Auriez-vous une solution ?

Je joins au cas où un fichier pour une meilleure compréhension.

Je vous remercie par avance pour vos retours et de partager vos compétences qui nous permettent de nous améliorer

Cordialement

Prya

Salut Prya,

un début de quelque chose.
Le code se trouve dans le module VBA de 'BDOK'.

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim OutMail As Object
Dim strbody As String 'corps du mail
Dim lemail As Variant 'le destinataire
'
Application.EnableEvents = False
'
If Not Intersect(Target, Columns("AJ")) Is Nothing Then
    If IsDate(Target) And Target.Offset(0, 1) = "P" And Target.Interior.Color <> RGB(255, 255, 255) Then
        'conversion fichier en pièce jointe
        Set OutApp = CreateObject("Outlook.Application")
        OutApp.Session.Logon
        Set OutMail = OutApp.CreateItem(0)
        '
        strbody = "<font face=calibri>" & "<font size=4>" & "Madame, Monsieur," & "<br>" & "<br>" & "Suite à la validation de votre contrat de travail par le service des ressources humaines et de la réception de l'attestation de service fait, je vous informe que les heures que vous avez effectuées au semestre 1 et/ou 2 ont été mises en paiement." & Chr(10) & Chr(10) & "Pour plus de précisions sur le mois de paiement merci de bien vouloir s'il vous plaît vous connecter sur l'Application xxxxxxxxxxxxxxxxx ." & "<br>" & "<br>" & " Ci-joint un petit tutoriel." & "<br>" & "<br>" & "Pour information : les montants sont exprimés en BRUT." & "<br>" & "<br>" & "Bien Cordialement" & _
                  "<br>" & "<br>" & "zzzzzzzzzzzz"    'Ici le texte du mail

        '---------------------------------------------------------

        Set lemail = CreateObject("Outlook.Application")
        With lemail.CreateItem(olMailItem)
            .To = Range("M" & Target.Row).Value
            ...
            ...


A+

Bonjour Curulis57,

Merci d'avoir pris le temps de regarder. J'ai compris le code indiqué, je viens de faire mes recherches, j'aime bien comprendre la signification du code.

En revanche, je ne vois pas comment il se déclenche, quand je saisis une date, il ne se passe rien.

Pouvez-vous SVP me dire comment on active un code qui n'est pas dans un module mais dans la feuille concernée directement. Doit-elle se déclencher toute seule à la saisie ?

Je vous en remercie par avance

Cordialement

Prya

Salut Prya,

j'ai l'impression que le code est plus rapide que l'affichage des couleurs.
De plus, ta formule en [AK] n'est pas exempte d'erreur.

=SI(AJ8="";"NP";"P")

La formule telle quelle accepte n'importe quoi pour afficher "P"...

Je préconise donc de supprimer les formules de la colonne [AK] et de laisser faire VBA comme ci-dessous.
Ces lignes remplacent le début de la précédente macro.

If Not Intersect(Target, Columns("AJ")) Is Nothing Then
    Target.Offset(0, 1) = IIf(IsDate(Target), "P", "NP")
    If IsDate(Target) Then

Et tout roule!


A+

impeccable !!! Merci beaucoup.

Pour mon information avec l'ancien code je voyais quand la ligne passait en vert

Avec ce nouveau code "If Not Intersect(Target, Columns("AJ")) Is Nothing Then
Target.Offset(0, 1) = IIf(IsDate(Target), "P", "NP")
If IsDate(Target) Then"

Comment il détecte la couleur SVP ? puisque cette partie là n'y est plus ""And Target.Interior.Color <> RGB(255, 255, 255)"

Merci

Salut Prya,

la couleur, qui plus est automatique via MFC, n'est qu'un élément visuel pour ton confort "humain".
Une date valide certifiant le "P" en [AK] suffit largement pour enclencher la procédure "Mail" : je ne tiens plus compte de la couleur dans ce cas ci.


A+

Merci beaucoup Curulis57. grâce à vous, j'ai résolu mon souci.

Sauf erreur de ma part je pense avoir bien indiqué ce post en "résolu"

A+

Bonjour,

Je rencontre un petit souci avec ma base de données, elle fonctionne bien. Le seul problème est que quand je fais un copier-coller pour rajouter des lignes en bas du tableau, le programme indique des "NP" dans toutes les colonnes.

Pouvez-vous SVP me dire comment y remédier ?

Je vous en remercie par avance

Prya

Nota : je joins ma base de données pour mieux visualiser le petit problème

Rechercher des sujets similaires à "envoi mail personnalise ligne passe couleur"