Changé le fond d'une cellule en fonction de valeur contenue dans 3 cellules

Bonjour,

Je bloque un peu sur quelque chose qui me paraissait très simple de base (je penses que ce n'est vraiment pas compliqué, mais je dois bloqué sur quelque chose). Actuellement j'ai un fichier Excel avec un tableau, rien de très compliqué, cependant j'aimerai que quand dans la partie "SPECIFICATIONS", si Gx, Hx, Ix ont une valeur dans leur cellules alors on colore la cellules de la colonne M associé en vert, s'il manque au moins une valeur dans la ligne alors on colore en orange et s'il n'y a rien du tout alors on colore en rouge.
Comme dans cette exemple :
Si G12, H12, I12 possèdent chacun une valeur dans leur cellule, alors on colore la cellule M12 en vert (Et cela pour la plage de donnée G12:I1000 )

Voici le code que j'avais essayé de faire :

Sub MaMacro()
    Dim i As Long 

    For i = 2 To 1000
        If Not IsEmpty(Cells(i, 7)) Then
            Cells(i, 13).Interior.Color = RGB(255, 255, 255) ' Cellule de la colonne M
        Else
            Cells(i, 13).Interior.Color = RGB(128, 255, 128) ' Cellule de la colonne M
        End If
    Next i
End Sub

J'aimerai que cela soit fait en VBA pour m'entrainer un peu et voici le fichier.

Merci d'avance au temps que vous passerez sur mon sujet.
Cordialement
MikaG

Bonjour,

Voici une proposition en VBA comme demandé:

Sub MaMacro()
Dim ligFin As Long

ligFin = Range("A" & Rows.Count).End(xlUp).Row 'détermination du numéro de ligne de fin en partant vers le haut depuis la dernière ligne de la feuille

For lig = 5 To ligFin 'ligne 5 car pas besoin de regarder au dessus des en-têtes de colonne
    cpt = 0 'réinitialisation du compteur de cellule non vide

    For col = 7 To 9 'boucle sur les colonnes G à I
        If Not IsEmpty(Cells(lig, col)) Then cpt = cpt + 1 'incrémentation du compteur de cellule non vide si cellule non vide
    Next col

    If cpt = 3 Then 'choix de la couleur à appliquer
        Range("M" & lig).Interior.Color = RGB(198, 224, 180) 'vert
    ElseIf cpt = 0 Then
        Range("M" & lig).Interior.Color = RGB(255, 179, 179) 'rouge
    Else
        Range("M" & lig).Interior.Color = RGB(248, 203, 173) 'orange
    End If
Next lig
End Sub
Rechercher des sujets similaires à "change fond fonction valeur contenue"