Couleur forme selon valeur

Bonjour à toutes et tous

Etant très novice en VBA j'aurais besoin de votre aide.

J'aimerais selon une valeur changer la couleur d'une forme.

Est il possible de le faire en VBA ?

Voir fichier joint

Si la valeur est égale à 0 la forme reste blanche

de 0 à 5 jaune

de 6 à 10 orange

plus de 10 rouge,

Autre question, peut on mettre la valeur dans la forme, ou faut il se servir que des cellules ?

Merci

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

Merci pour la réponse, mais je me suis mal expliqué, les couleurs doivent être applique sur le seond onglets "blocs" qui sont des formes.

Et non des cellules.

Bonjour,

C'est vrai que les explications sont un peu "ténébreuses" ...

Un autre essai, avec les formes de la feuille "Blocs" renommées respectivement en Rect_A, Rect_B, Rect_C, etc. (tu ne précises pas ce qu'il y a lieu de faire avec des valeurs sous 0 )

ça me convient parfaitement, pour la question de moins de 0, ce cas ne se produira pas.

peux-tu m'expliquer ton code ? J'en ai grand besoin.

Il y aura beaucoup plus que le range a2:a12, ça je l'adapterais. ça sera plus a2:a300

Je pourrais rajouter autant de rectangle que je veux, du moment que c'est adapter à "If Not Intersect(Target, [A2:A12])"

If Not Intersect(Target, [A2:A12]) Is Nothing Then

With Sheets("Blocs").Shapes("Rect_" & Target.Offset(0, 1)).Fill.ForeColor

Select Case Target.Value

En tout les cas merci pour tout, je fais des essais.

Re-bonjour,

christian77 a écrit :

pour la question de moins de 0, ce cas ne se produira pas

Parce que tu peux garantir qu'il n'y aura jamais d'erreur d'encodage ? Ou parce qu'une Validation de données sera mise en place?

C'est une procédure événementielle qui est utilisée ici et c'est donc le changement de contenu d'une cellule dans la plage de cellules de A2 à A12 qui déclenche l'exécution du code. Étendre la plage à A2:A300 est donc possible comme tu le supposais ... sauf que ça implique la présence de 299 formes dans la seconde feuille ... les renommer risque bien d'être un peu longuet !!

Avec une quantité pareille, la question qui se pose est: "Est-ce que tu as envisagé la méthode la plus performante?" (comme nous ne connaissons pas le contexte d'utilisation de ton fichier, toi seul pourra répondre à la question ... en espérant que la réponse ne sera pas trouvée au prix de ta santé mentale )

Bon courage

Re-salut

C'est pour créer un synoptique, plus de 400 shapes à créer, mais une fois fait, ça sera plus tranquille.

Je mets ça en place, si je vois que j'ai des soucis je fais appelle aux pros.

Merci

Salut U.milité

J'ai fais plusieurs essais.

Lorsque je rentre les données en "dur" ldans la colonne A les couleur changes, mais si je fais de l'import les couleurs ne changent pas (voir de A10 à A20)

Je n'arrive pas à savoir pourquoi. J'ai joint un fichier.

Merci

Salut,

La question est de savoir si ça ne fonctionne pas parce que tu importes ... ou parce que je n'avais prévu la modification que d'une cellule à la fois!?

Essaie de modifier le code comme suit:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A2:A2000]) Is Nothing Then
    For Each tg In Target.Resize(Target.Rows.Count, 1)
        With Sheets("Blocs").Shapes("A01_" & tg.Offset(0, 1)).Fill.ForeColor
            Select Case tg.Value
            Case Is > 10
                .RGB = RGB(255, 0, 0)
            Case Is > 6
                .RGB = RGB(255, 140, 0)
            Case Is > 0
                .RGB = RGB(255, 255, 0)
            Case Else
                .RGB = RGB(255, 255, 255)
            End Select
        End With
    Next tg
End If
End Sub

J'ai testé en modifiant une cellule, en copiant plusieurs valeurs et en les collant en colonne A (et même en collant les valeurs simultanément en A et B) ... pour mes 2-3 tests ça semble fonctionner!

Re-salut

Cela ne fonctionne pas lorsque je les importe d'une autre colonne, ou dans le futur d'un autre classeur.

Mais lorsque je les colle, c'est bon. Si je fait une macro qui copie colle, ça devrait faire l'affaire.

merci

[Message supprimé: doublon]

Re,

Je ne sais pas ce que tu appelles "les importer depuis une autre colonne ou un autre classeur"? On ne sait pas non plus si tu fais ton importation "par paquets" ou "en un seul lot"?

Dans l'absolu, tu pourrais aussi colorer les formes au clic sur un bouton (et donc à la demande, plutôt que sur l'événement que j'ai choisi d'utiliser ... avec les infos disponibles au départ)

Bonjour à tous,

J'essais dessepérement de trouver une info quelque part mais je ne trouve pas la solution à mon problème. Je demande donc votre aide.

Je fais un planning et je souhaite avoir une cellule colorer en fonction d'une autre cellule colorer. Je m'explique : lorsque je mets en jaune une case, j'aimerais qu'automatiquement, certaines cellules se colorient aussi en jaune. Le jaune est la couleur pour l'utilisation de notre salle de réunion. Cependant, je dois pouvoir griser d'autres cellules en bleu sans que les autres se colorient. Il faut uniquement que cela se passe avec le jaune.

Lorsque D1 est coloré en jaune, alors K1 et R1 se colorient en jaune.

Lorsque E3 est coloré en jaune, alors L3 et S3 se colorient en jaune.

Je vous ai joint mon modèle.

Merci par avance pour votre aide,

Alexis

5calendrier.xlsx (25.27 Ko)
9calendrier.xlsx (25.27 Ko)

Bonjour Alexis74,

Relancer une ancienne discussion n'a d'intérêt que si la demande est vraiment très proche de l'originale.

Sur la page d'accueil du forum, il y a un bouton "NOUVEAU" (en haut à gauche) qui te permettra de créer une nouvelle discussion. Prends le temps de choisir un titre évocateur, puis de soigner et d'étoffer tes explications (tu évoques E3, L3 et S3 ... qui ne semblent pas concernées par tes changements de couleur!?)

Bonjour,

Je vais ouvrir une autre discussion alors,

Cordialement

Rechercher des sujets similaires à "couleur forme valeur"