Mise en forme conditionnelle dans une forme insertion

Résolu/Fermé
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 - 20 déc. 2022 à 10:15
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 - 15 janv. 2023 à 00:08

Bonjour,

Comme le dit le titre:
Est-il possible de faire une "Mise en forme conditionnelle" dans l'insertion d'une forme rectangulaire.

Exemple différentes couleurs suivant 
Dans une insertion rectangulaire, j'ai la formule =H$6, cette insertion contient la valeur du coefficient de marée.
Je souhaiterais que la couleur change suivant la valeur du coefficient.
 

Coefficient


Windows / Edge 108.0.1462.54

23 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié le 20 déc. 2022 à 11:10

Bonjour,

Inserer une formule dans une shape: 

Insérer une formule dans une forme (objet) (excel-pratique.com)

Par contre le changement de couleur, faut voir car sauf erreur de ma par, possible seulement avec du code VBA

Pouvez mettre un fichier exemple a dispo

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...

1
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
20 déc. 2022 à 17:34

Bonsoir

Avec un macro :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("H6")) Is Nothing Then
Select Case Target.Value

Case Is > 100
R = 0: G = 32: B = 96
Case Is < 41
R = 183: G = 222: B = 232
Case Is < 61
R = 146: G = 205: B = 220
Case Is < 81
R = 0: G = 176: B = 240
Case Is < 101
R = 0: G = 112: B = 192




End Select

Shapes("ZoneTexte 80").Fill.ForeColor.RGB = RGB(R, G, B)
End If

If Not Intersect(Target, Range("H10")) Is Nothing Then
Select Case Target.Value

Case Is > 100
R = 0: G = 32: B = 96
Case Is < 41
R = 183: G = 222: B = 232
Case Is < 61
R = 146: G = 205: B = 220
Case Is < 81
R = 0: G = 176: B = 240
Case Is < 101
R = 0: G = 112: B = 192

End Select

Shapes("ZoneTexte 81").Fill.ForeColor.RGB = RGB(R, G, B)
End If

End Sub

Pour changer les couleurs il suffit de changer les valeurs  R G B  (celles qui sont indiquées dans les couleurs personnalisée quand on choisit une autre couleur pour une cellule colorée)

Ton fichier avec la macro qui se déclenche à l'entrée d'une nouvelle valeur en H6 ou en H10

https://www.cjoint.com/c/LLuqIbD2Jix

Cdlmnt

Via


1
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
20 déc. 2022 à 18:05

Ouppssss !!!

Ça ne fonctionne pas (c'est de ma faute)
Je suis désolé, pour alléger le fichier, j'ai supprimer les macros de la feuille, je ne pensais pas que la nouvelle ajoutée aux autres poserait des problèmes :(

Voici le fichier avec ces macros:
Modèle 2

1
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
20 déc. 2022 à 18:40

Re

Il suffit d'ajouter ma macro à la suite des autres et de déclarer les variables R, G et B

https://www.cjoint.com/c/LLurNt3RsJx


1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
20 déc. 2022 à 20:19

Impeccable ! ! !
merci de ton aide

1
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
20 déc. 2022 à 11:45
0
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
20 déc. 2022 à 16:04
0
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
12 janv. 2023 à 10:35

Que faut-il faire pour changer la couleur de la police quand le fond est trop foncé:
1) Fond clair écriture noir
2) Fond foncé écriture Blanche

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
12 janv. 2023 à 13:45

Bonjour et bonne année d'abord

Pour changer à volonté la couleur d'écriture en fonction de celle de fond, modifie ainsi la macro :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("H6")) Is Nothing Then
Select Case Target.Value

Case Is > 100 ' modifier les couleurs d'écritures si nécessaire
R = 0: G = 32: B = 96: E = vbWhite ' couleur blanche
Case Is < 41
R = 183: G = 222: B = 232: E = vbBlack ' couleur noire
Case Is < 61
R = 146: G = 205: B = 220: E = vbBlack
Case Is < 81
R = 0: G = 176: B = 240: E = vbBlack
Case Is < 101
R = 0: G = 112: B = 192: E = vbWhite

End Select

Shapes("ZoneTexte 80").Fill.ForeColor.RGB = RGB(R, G, B) ' couleur de fond
Shapes("ZoneTexte 80").TextFrame.Characters(1, 3).Font.Color = E ' couleur d'écriture
End If

If Not Intersect(Target, Range("H10")) Is Nothing Then
Select Case Target.Value

Case Is > 100
R = 0: G = 32: B = 96: E = vbWhite
Case Is < 41
R = 183: G = 222: B = 232: E = vbBlack
Case Is < 61
R = 146: G = 205: B = 220: E = vbBlack
Case Is < 81
R = 0: G = 176: B = 240: E = vbBlack
Case Is < 101
R = 0: G = 112: B = 192: E = vbWhite

End Select

Shapes("ZoneTexte 81").Fill.ForeColor.RGB = RGB(R, G, B)
Shapes("ZoneTexte 81").TextFrame.Characters(1, 3).Font.Color = E
End If

End Sub

Cdlmnt

Via


0
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
12 janv. 2023 à 16:39

Merci et bonne année à toi aussi.
J'ai un problème, il y a    E  =     qui ce surligne en bleu avec le message:

Erreur de compilation:
"variable non définie"

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
12 janv. 2023 à 16:45

Parce qu'à un endroit tu as défini les variables utilisées

A cet endroit il suffit de rajouter une ligne :

Public E as String


0
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
12 janv. 2023 à 17:06

Je ne vois pas ce que tu veux dire.
Je n'ai jamais ajouté de variables avant.
Je ne modifie jamais une macro sans l'avis de celui qui a fait

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
Modifié le 12 janv. 2023 à 20:33

C'est sans doute celui qui t'as fait les macros attachées à la feuille car tout au début avant les macros tu as bien ;

Option Explicit

Const celConditions = "B13"
Const CelLune = "B3"
Const celQuit = "A1"
Dim R As Integer
Dim G As Integer
Dim B As Integer
Dim nomh As String

Il te suffit de rajouter à ces déclarations ;

Dim E As String
Dim nomob As String


0
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
12 janv. 2023 à 20:58

Ok, d'accord, je n'avais pas compris qu'il fallait revenir tout au début de la feuille.
Moi, je ne m'occupais que de ta macro.

Mais désolé, ça ne fonctionne pas
 

Option Explicit

Const celConditions = "E13"
Const CelLune = "E3"
Const celQuit = "A1"
Dim R As Integer
Dim G As Integer
Dim B As Integer
Dim E As String
Dim nomh As String
Dim nomob As String

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
12 janv. 2023 à 22:35

Renvoie moi le fichier que je regarde


0
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
12 janv. 2023 à 23:18

Avant de te renvoyer le fichier, j'ai voulus essayer.
J'ai rallumé mon PC et essayé de nouveau et la ça fonctionne (peut-être que ça lui à fait du bien d'être coupé
Avec les variables du dernier message.
En supprimant "Dim nomob As String" car cela faisait deux fois.
Je vais revoir ça demain, si rien n'a changé après avoir fermé mon PC.

Je te tiens au courant.

0
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
13 janv. 2023 à 09:46

Bonjour
Ok, ça fonctionne.
Merci encore

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
13 janv. 2023 à 11:40

Parfait ☺

A la prochaine!


0
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 20
14 janv. 2023 à 18:50

Avec ta macro, ça ma donné envie de faire autre chose

J'ai fais une copie d'un morceau de ta macro, j'ai remplacé simplement la shape, au lieu d'être un rectangle, c'est une shape bouée (comme ils disent dans insertion).

Tout va bien, j'arrive presque à avoir ce que je veux....mais:

Ça fonctionne si je saisie une donnée dans la cellule H19 ma Bouée change de couleur.
Par contre, si la cellule H19 contient une formule, là ça na fonctionne pas.
 

Et je peux faire ça qu'avec un Bouée avec remplissage plein, si je prends un remplissage dégradé, ça change qu'un morceau

Y a-t-il une solution ?

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
14 janv. 2023 à 19:34

Intéressant !

Si H19 contient une formule la macro ne va pas s'activer automatiquement mais on peut me faire autrement, comme par exemple à l'entrée sur la feuille ou autre à voir

Ensuite je suppose que tu voudrais que ta bouée "se remplisse" en fonction du %

Renvoies moi ton fichier modifié, on va trouver une solution, il en a toujours une !


0