Comparaison nom shapes et valeur cellule pour couleur

Bonjour tout le monde,

Voici mon petit soucis

J'ai une feuille excel avec des formes automatiques (shapes)

une colonne avec des noms et en face des 1 ou rien (par formule).

Je voudrais parcourir tout les shapes et comparer leur nom avec les noms de la colonne, lorsque le nom du shape et la valeur de la cellule sont identique et que en face de ce nom il y a un 1, que la couleur de fond du chape change.

Je vous joint un petit fichier exemple.

Merci a vous

Cordialement

87couleur-shapes.zip (4.09 Ko)

Bonjour maguetlolo,

Tu peux tester avec cette macro :

Sub colorShape()
Dim form As Shape, c As Range
  Application.ScreenUpdating = False
  For Each form In ActiveSheet.Shapes  'boucle sur tous les shapes de la feuille active
    With form
      Set c = [h:h].Find(.Name, , xlValues, xlWhole)  'cherche si le nom du shape existe dans la colonne H
      If Not c Is Nothing Then  's'il existe
        If c.Offset(, 1) = 1 Then  'et si la colonne I est égal à 1
          With .Fill
            .Visible = msoTrue
            .ForeColor.SchemeColor = 13  'on change la couleur de fond avec du jaune (13)
          End With
        End If
      End If
     End With
  Next form
End Sub

Bonjour a toi et merci, ça marche parfaitement

Par contre, j'avais commencé et presque trouvé, le code (basique!) que j'ai fait (colorc) fonctionne et color bien si le nom existe mais il ne tiens pas compte de mon 'if la cellule a coté contient 1"

Pour mon info, pouvez vous me dire pourquoi?

je joint le fichier

Cordialement

103couleur-shapes2.zip (10.88 Ko)

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 )

Bonjour tout le monde

désolé pour le temps de réponse et merci pour tout.

Cordialement

Rechercher des sujets similaires à "comparaison nom shapes valeur couleur"