If "MFC = Red" Then Display

Bonjour,

Je pense que tout est dans le titre ou presque.. j'aimerais envoyer un mail uniquement si la mise en forme conditionnelle "Rouge" est appliquée sur ma cellule.

J'ai essayé de bidouillé un truc grâce à l'enregistreur de macro mais sans succès

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

Public Sub EnvoiAutomatiqueMail()

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

    For i = 2 To dl ' on passe en revue toutes les lignes de la colonne A

    If Cells(i, "G").FormatConditions(1).Interior.PatternColorIndex.Color = 255 Then
    'If Cells(i, "A").Value = 3 Then

       objet = Sheets("LIST").Range("A1").Value
       msg = Sheets("LIST").Range("B1").Value & " " & Sheets("LIST").Range("=C1").Value
       mail = Cells(i, "D")

        Set OlApp = CreateObject("outlook.application")
        'Set OlMail = OlApp.createitemfromtemplate("Chemin modèle.fdf")
        Set OlMail = OlApp.createitem(0)
            With OlMail
           .Subject = objet 'sujet du mail
           .To = mail 'adresse mail destinataire
           .body = msg 'corps du message

            '.Attachments.Add '"cheminPJ.pdf"
            .Display 'affiche le mail
            '.send
            End With
    End If
    Next i 'on passe au mail suivant

End Sub

Si vous pouvez éclairer ma lanterne je vous en serais gré!

Nairda

6relance-auto.xlsm (27.07 Ko)

Bonjour,

Je ne pense pas que tu puisses faire référence au statut de ton format conditionnel.

Il me semble que ça n'est possible qu'avec les versions les plus récentes d'Excel (2016...) Et encore je ne suis pas sure

Il faut passer par la condition elle même pour tester ta cellule.

par exemple si pour que cette cellule soit rouge, la condition est que la date soit dépassée, alors tu dois écrire :

If Cells(i, "G").Value > Date Then...

Etant entendu que si la condition est respectée c'est que la cellule est rouge...

A+

Bonjour,

Je mettrais :

If Cells(i, 7).DisplayFormat.Interior.PatternColor = vbRed Then

Si tu as bien un motif (pattern) coloré...

S'il s'agit de la couleur de fond :

If Cells(i, 7).DisplayFormat.Interior.Color = vbRed Then

Cordialement.

Purée... On arrête pas le progrès : J'en était encore resté à Excel 5 !

Salut Ferrand et merci d'avoir éclairé ma lanterne !

A+

Salut Galopin !

Ça ne fait pas très très longtemps, c'était à propos d'une discussion de somme ou dénombrement selon couleur, avec couleur MFC... Eriiic (je crois) à mis le doigt sur cette propriété... Malheureusement elle ne peut être incoporée à une fonction, mais or ce cas elle peut servir...

Salut à tous,

Galopin, ta solution fonctionne mais je cherchais justement à éviter de réécrire mes conditions de MFC dans mon code (la fainéantise m'interdisant de faire 2 fois le même travail ). L'avantage quand on est débutant c'est qu'on est persuadé que tout est possible

Et pour le coup c'est confirmé par MFerrand! Ma MFC change la couleur de fond, ton second code fonctionne donc à merveille.

Merci à vous 2 pour ces réponses toujours très instructives!

Nairda

Rechercher des sujets similaires à "mfc red then display"