Changer la couleur d'une forme en fonction du contenu d'une cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

benjamin.prade

XLDnaute Nouveau
Bonjour à tous,

J'ai fait mes petites recherches à ce sujet mais je n'ai rien trouvé de probant donc je viens solliciter votre expertise.

J'aimerais savoir s'il est possible de paramétrer la couleur d'une forme (un cercle basique par exemple) en fonction du contenu d'une cellule.
Par exemple, si ma cellule est vide je voudrais que mon cercle soit blanc (donc qu'on ne le voie pas) et si elle contient du texte alors mon cercle serait rouge.

J'ai déjà essayé la mise en forme conditionnelle mais ça ne s'applique qu'aux cellules et pas aux formes insérées.

Merci d'avance.

Benjamin
 
Re : Changer la couleur d'une forme en fonction du contenu d'une cellule

Pour l'instant j'ai cette macro là mais elle passe par un bouton et elle ne fonctionne pas :
Sub forme()

Dim shp As Shape
Dim wks As Worksheet

Set wks = ActiveWorkbook.Worksheets("Brief")

If Range("A1") <> "" Then

' Bordures des cadres

Set shp = wks.Shapes("Ellipse 94")
shp.Line.ForeColor.RGB = RGB(100, 100, 100)

' Intérieur des formes

Set shp = wks.Shapes("Ellipse 94")
shp.OLEFormat.Object.Interior.Color = RGB(123, 5, 100)

End If

End Sub

C'est une piste qui pourra peut-être aider.
 
Re : Changer la couleur d'une forme en fonction du contenu d'une cellule

Merci à tous vos solutions m'ont bien aidé.
Pour ceux que ça intéresse voilà mon résultat final :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then
With ActiveSheet.Shapes("Ellipse 94")

If Target.Value = "" Then
.Fill.Visible = msoFalse
.Line.Visible = msoFalse
Else
' Bordures des cadres
Shapes("Ellipse 94").Line.ForeColor.RGB = RGB(100, 100, 100)
' Intérieur des formes
Shapes("Ellipse 94").OLEFormat.Object.Interior.Color = RGB(123, 5, 100)

.Fill.Visible = msoTrue
.Line.Visible = msoTrue
End If
End With
End If
End Sub

Cela permet de choisir les couleurs que l'on veut.

Encore merci et à bientôt.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour