Re,
En fait, ta macro tient bien compte du "if la cellule a coté contient 1" mais le problème est qu'en utilisant la syntaxe suivante :
ActiveSheet.Shapes(nom).Fill.ForeColor.SchemeColor = 15
la variable "nom" (dans ActiveSheet.Shapes(nom)) ne fait pas forcément référence au nom du shape. Elle peut également faire référence à l'ordre dans lequel tu as dessiné tes shape. Donc apparemment, le 2è rectangle que tu as dessiné dans ton fichier s'appelle "Rectangle 17" ! C'est pourquoi ça te colorie le rectangle 17.
Il est donc préférable de comparer chaque shape aux noms existant plutôt que de comparer chaque nom en colonne H aux shape de la feuille. (bien que je ne l'ai pas fait exprès )