Mail automatique selon mise en forme conditionnelle

Bonjour,

Pour ceux qui ont suivi un peu mon projet, ma base de donnée avance doucement (pas tellement de temps en ce moment).

Je cherche désormais à créer une macro qui relance automatiquement par mail les porteurs de projets lors de l'acompte 1.

Pour celà, je compte utiliser la mise en forme automatique que j'ai affecté à la colonne AE.

Si la cellule de la colonne AE est rouge (la date de relance est passée et cette dernière n'a pas été effectuée), alors envoyer un mail au porteur de projet (celui de la ligne en question, colonne E).

L'objet et le corps du message sont stockés dans la feuille "LIST" colonne F et G.

J'ai créé et essayé une macro qui bloque quasiment dès le départ et je n'arrive pas à résoudre les problèmes... d'où ce post qui je l'espère m'aidera à résoudre ce *#"**.. joyeux bordel

Option Explicit
Dim Ws As Worksheet
Dim OlApp As Object
Dim OlMail As Object
Dim mail&, msg&, objet&, i&, dl&

Public Sub EnvoiAutomatiqueMail()

Set Ws = Sheets("BD Finance")
dl = Ws.Range("A" & Rows.Count).End(xlUp).Row

    For i = 2 To dl ' on passe en revue toutes les lignes de la colonne AE
    If Cells(i, "AE").NumeroIndexColor = "3" Then
       'objet du mail
       objet = Sheets("LIST").Range("F1")
        'corps du mail
       msg = Sheets("LIST").Range("F2") & vbCrLf & vbCrLf & Sheets("LIST").Range("F3") & Ws.Cells(i, "B") & Sheets("LIST").Range("F4") & Ws.Cells(i, "R") & Sheets("LIST").Range("F5") & Ws.Cells(i, "F") & vbCrLf & Sheets("LIST").Range("F6") & Ws.Cells(i, "U") & Sheets("LIST").Range("F7") & Ws.Cells(i, "AD") & Sheets("LIST").Range("F8") & Ws.Cells(i, "AE") & vbCrLf & Sheets("LIST").Range("F9") & vbCrLf & Sheets("LIST").Range("F10") & vbCrLf & vbCrLf & Sheets("LIST").Range("F11")
        'adresse mail destinataire
       'mail = .Cells(i, "A")
        Set OlApp = CreateObject("outlook.application")
        Set OlMail = OlApp.createitem(0)
            With OlMail
            .Subject = objet 'sujet du mail
           .To = mail 'adresse mail destinataire
           .body = msg 'corps du message
        .Display 'affiche le mail
            '.send 'on envoie le mail créé
            End With
    End If
    Next i 'on passe au mail suivant

End Sub

Bien cordialement,

51test-bd-fi.xlsm (61.12 Ko)

Bonsoir,

Vous ne pouvez pas tester la couleur d'une cellule affichée par une mise en forme conditionnelle. La seule manière de faire est

1- de récupérer la formule conditionnant l'affichage de la couleur rouge

2- de vérifier que cette formule est vraie en utilisant l'instruction VBA "Evaluate"

Rechercher des sujets similaires à "mail automatique mise forme conditionnelle"