Mise en forme conditionnelle dans une forme insertion

Résolu

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

  1. 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
    1. 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
      1. 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
        1. Impeccable ! ! !
          merci de ton aide

          1
          1. 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
            1. 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
              1. 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
                1. 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
                  1. 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
                    1. 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
                      1. 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
                        1. Renvoie moi le fichier que je regarde


                          0
                          1. 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
                            1. Bonjour
                              Ok, ça fonctionne.
                              Merci encore

                              0
                              1. 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
                                1. 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
                                  • 1
                                  • 2