Coloriage de formes libres de Cell.DisplayFormat.Interior.Color

Bonjour tout le monde.

J'ai un tableau excel auquel j'ai appliqér une mise en forme conditionnelle "Nuances de couleurs"

J' utilisé le code "Cell.DisplayFormat.Interior.Color pour récupérer la couleur d'interieur pour chaque cellule du tableau.

Ces couleurs de fond obtenues sont représentées pas des nombres de 7 chiffres, commençant par 7 ou 8.

Mon problème c'est comment colorier des formes libres en utilisant ces codes obtenus.

"Activesheet.shapes("Forme libre").Fill.Forecolor. RGB = RGB(r, v, b) marche bien mais en utilisant ces codes MFC je ne sais pas quel syntaxe utiliser.

Quelqu'un pour m'aider et merci d'avance

Said

Salut,

Je ne suis pas certain d'avoir compris ta demande, mais dans le fichier ci-joint je te montre comment appliquer la couleur d'une cellule (ici la cellule A1) à un forme.

Si ce n'est pas cela, un fichier modèle serait très appréciable.

Cordialement.

14azekazek-v1.xlsm (20.40 Ko)

bonjour azekazek, salut Yvouille,

comme ceci ?

Private Sub Worksheet_Calculate()
     Dim Arr, Fleche
     Arr = Array("Fleche K4", "Fleche K13", "Fleche K23")
     For Each Fleche In Arr
          With Me.Shapes(Fleche)
               .Fill.ForeColor.RGB = Me.Range(Split(Fleche)(1)).DisplayFormat.Interior.Color
          End With
     Next
End Sub
8azekazek-v1.xlsm (21.09 Ko)

Merci, chers amis pour vos solutions proposées.

Pour être plus explicite. , je joins à mon sujet, un classeur contenant FEUILLE1 représentant des données ou en colonneA sont représentés les noms de forme, en colonneB le jour et l'heure et en colonneC les températures.

J'ai appliqué une MISE EN FORME CONDITIONNELLE pour la colonneC puis à l'aide la macro j'ai obtenu le code couleur de chaque cellule placé dans la colonneD.

Maintenant mon problème c'est colorier chaque forme dont le nom figure dans la colonneA en utilisant le code couleur se trouvant dans la colonneC.

J'espère que je suis plus explicite cette fois-ci

En espérant obtenir des solutions de votre part, recevez mes vifs remerciements.

Said

11mfc-colors.xlsm (14.75 Ko)

Re-salut,

Considérant qu'il n'est pas toujours nécessaire d'avoir la meilleure solution possible, mais d'en avoir une, je te propose le fichier ci-joint.

Cordialement.

11mfc-colors-v1.xlsm (23.08 Ko)

@ azekazek,

on n'a pas nécessairement besoin de la colonne D, donc plus facile à appliquer et c'est la même "solution" de hier soir. Il n'y a pas des formes dans votre fichier.

Sub Mes_Shapes()
     Dim sh, c, Shp, r

     Set sh = Sheets("Feuil1")               'votre feuille
     Set c = sh.Range("A1:A100")             'plage avec le nom des formes

     For Each Shp In Sheets("Feuil1").Shapes     'boucler chaque forme de cette feuille
          With Shp
               r = Application.IfError(Application.Match(Shp.Name, c, 0), 0)     'position du nom de la forme dans cette plage
               If r > 0 Then                 'position trouvée
                    With Shp                 'la forme
                         .Fill.ForeColor.RGB = c.Cells(r, 3).DisplayFormat.Interior.Color     'couleur de la MFC de la température
                         With .TextFrame2.TextRange     'éventuellement adapter le texte de la forme
                              .Characters.Text = "Forme : " & Shp.Name & " Température : " & c.Cells(r, 3).Value2 & "  Date : " & c.Cells(r, 2).Value2
                              .Font.Fill.ForeColor.RGB = RGB(0, 0, 0)     'font noir
                         End With
                    End With
               End If
          End With
     Next
End Sub
8mfc-colors-v1.xlsm (25.07 Ko)
Rechercher des sujets similaires à "coloriage formes libres displayformat interior color"