Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Coloriage d'objet dessin

52 réponses
Avatar
rthompson
Bonjour à toutes et tous

Je suis à nouveau plongé dans mon désir de créer une carte active
(Eh oui je sais, je suis con mais persistant)

Je voudrais savoir si il y a moyen de changer la couleur d'un objet suivant
la valeur d'une cellule


J'explique


Une forme dessinnée et nommée Rixensart (comme par hasard)
Cette forme est placée sur une feuille nommée Wallonie (encore un hasard)

Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des données
dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5
14
etc 4 25
53


Et je voudrais que la forme "Rixensart" soit verte si on est à moins de 10,
rouge si on est entre 11 et 20
Bleu si on est entre 21 et 30

Le tout par VBA, (j'en ai bien peur) et mise à jour par bouton
Le dernier truc je pourrais le faire

Mais c'est la création des couleurs qui me chiffonne

C'est pas possible, hein? Mais si! (j'ai demandé à la SNCF, mais il m'ont
dit que cette pub était périmé)


A bientôt

Rex

10 réponses

1 2 3 4 5
Avatar
rthompson
Bonjpur à toutes et tous

Quand je me relis je constate que c'est pas trop clair

Voici ce que j'ai

xxxxxxxxxxxxxxxxxxxxxxx
Sheets("Wallonie").Shapes("Rixensart").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Eh! Vous avez remarqué PAS DE SELECT!!!!! J'apprends!!!

Et ce que je voudrais, ce sont deux astuces
Une pour que la valeur de la couleur soit celle afficher dans une cellule
(D5 dans ce cas-ci)
Je calculerai la valeur de cette cellule par formule

Deuxième astuces
Comment faire pour que cela se passe pour toutes les formes de ma feuille?
En prenant bien sur le chiffre de couleur dans la colonne D sur la même
ligne que le nom de la forme

Oui, je sais ce n'est peut-être pas plus clair, mais j'essaie

A bientôt

Rex


"rthompson" a écrit dans le message de
news: Ow$
Bonjour à toutes et tous

Je suis à nouveau plongé dans mon désir de créer une carte active
(Eh oui je sais, je suis con mais persistant)

Je voudrais savoir si il y a moyen de changer la couleur d'un objet
suivant la valeur d'une cellule


J'explique


Une forme dessinnée et nommée Rixensart (comme par hasard)
Cette forme est placée sur une feuille nommée Wallonie (encore un hasard)

Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des
données dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5 14
etc 4 25 53


Et je voudrais que la forme "Rixensart" soit verte si on est à moins de
10,
rouge si on est entre 11 et 20
Bleu si on est entre 21 et 30

Le tout par VBA, (j'en ai bien peur) et mise à jour par bouton
Le dernier truc je pourrais le faire

Mais c'est la création des couleurs qui me chiffonne

C'est pas possible, hein? Mais si! (j'ai demandé à la SNCF, mais il m'ont
dit que cette pub était périmé)


A bientôt

Rex




Avatar
Daniel.C
Bonjour.
Mets ce code dans le module de la feuille "ENTREE" en remplaçant C2 par
la cellule à tester :

Private Sub Worksheet_Calculate()
Sheets("Wallonie").Select
Set f = Sheets("ENTREE")
With ActiveSheet.Shapes.Range("Rixensart")
If f.[C2] <= 10 Then
.Fill.ForeColor.RGB = RGB(0, 176, 80)
ElseIf f.[C2] > 10 And f.[C2] <= 20 Then
.Fill.ForeColor.RGB = RGB(255, 0, 0)
ElseIf f.[C2] > 20 And f.[C2] <= 30 Then
.Fill.ForeColor.RGB = RGB(0, 176, 240)
End If
End With
End Sub

Daniel

Bonjpur à toutes et tous

Quand je me relis je constate que c'est pas trop clair

Voici ce que j'ai

xxxxxxxxxxxxxxxxxxxxxxx
Sheets("Wallonie").Shapes("Rixensart").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Eh! Vous avez remarqué PAS DE SELECT!!!!! J'apprends!!!

Et ce que je voudrais, ce sont deux astuces
Une pour que la valeur de la couleur soit celle afficher dans une cellule (D5
dans ce cas-ci)
Je calculerai la valeur de cette cellule par formule

Deuxième astuces
Comment faire pour que cela se passe pour toutes les formes de ma feuille?
En prenant bien sur le chiffre de couleur dans la colonne D sur la même ligne
que le nom de la forme

Oui, je sais ce n'est peut-être pas plus clair, mais j'essaie

A bientôt

Rex


"rthompson" a écrit dans le message de
news: Ow$
Bonjour à toutes et tous

Je suis à nouveau plongé dans mon désir de créer une carte active
(Eh oui je sais, je suis con mais persistant)

Je voudrais savoir si il y a moyen de changer la couleur d'un objet suivant
la valeur d'une cellule


J'explique


Une forme dessinnée et nommée Rixensart (comme par hasard)
Cette forme est placée sur une feuille nommée Wallonie (encore un hasard)

Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des données
dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5 14
etc 4 25 53


Et je voudrais que la forme "Rixensart" soit verte si on est à moins de 10,
rouge si on est entre 11 et 20
Bleu si on est entre 21 et 30

Le tout par VBA, (j'en ai bien peur) et mise à jour par bouton
Le dernier truc je pourrais le faire

Mais c'est la création des couleurs qui me chiffonne

C'est pas possible, hein? Mais si! (j'ai demandé à la SNCF, mais il m'ont
dit que cette pub était périmé)


A bientôt

Rex






Avatar
rthompson
Bonjour et merci Daniel

Voilà déjà un pas dans la bonne direction

Et cela fonctionne MERCI

Maintenant la deuxième étape est la répétition

En effet j'ai 255 formes sur Wallonie
Et dans ENTREE j'ai ces 255 noms

MAIS

Les valeurs attribuées aux couleurs seront les mêmes pour tous

si on tiens compte du fait que le nom est dans la colonne N et la valeur de
ce nom en colonne O

Comment faire?

Peut-on dire que toutes les formes doivent suivre cette macro suivant la
valeur sur la même ligne?

Si toi, ou quelqu'un a une idée

D'avance merci

Rex




"Daniel.C" a écrit dans le message de news:

Bonjour.
Mets ce code dans le module de la feuille "ENTREE" en remplaçant C2 par la
cellule à tester :

Private Sub Worksheet_Calculate()
Sheets("Wallonie").Select
Set f = Sheets("ENTREE")
With ActiveSheet.Shapes.Range("Rixensart")
If f.[C2] <= 10 Then
.Fill.ForeColor.RGB = RGB(0, 176, 80)
ElseIf f.[C2] > 10 And f.[C2] <= 20 Then
.Fill.ForeColor.RGB = RGB(255, 0, 0)
ElseIf f.[C2] > 20 And f.[C2] <= 30 Then
.Fill.ForeColor.RGB = RGB(0, 176, 240)
End If
End With
End Sub

Daniel

Bonjpur à toutes et tous

Quand je me relis je constate que c'est pas trop clair

Voici ce que j'ai

xxxxxxxxxxxxxxxxxxxxxxx
Sheets("Wallonie").Shapes("Rixensart").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Eh! Vous avez remarqué PAS DE SELECT!!!!! J'apprends!!!

Et ce que je voudrais, ce sont deux astuces
Une pour que la valeur de la couleur soit celle afficher dans une cellule
(D5 dans ce cas-ci)
Je calculerai la valeur de cette cellule par formule

Deuxième astuces
Comment faire pour que cela se passe pour toutes les formes de ma
feuille?
En prenant bien sur le chiffre de couleur dans la colonne D sur la même
ligne que le nom de la forme

Oui, je sais ce n'est peut-être pas plus clair, mais j'essaie

A bientôt

Rex


"rthompson" a écrit dans le message de
news: Ow$
Bonjour à toutes et tous

Je suis à nouveau plongé dans mon désir de créer une carte active
(Eh oui je sais, je suis con mais persistant)

Je voudrais savoir si il y a moyen de changer la couleur d'un objet
suivant la valeur d'une cellule


J'explique


Une forme dessinnée et nommée Rixensart (comme par hasard)
Cette forme est placée sur une feuille nommée Wallonie (encore un
hasard)

Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des
données dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5 14
etc 4 25 53


Et je voudrais que la forme "Rixensart" soit verte si on est à moins de
10,
rouge si on est entre 11 et 20
Bleu si on est entre 21 et 30

Le tout par VBA, (j'en ai bien peur) et mise à jour par bouton
Le dernier truc je pourrais le faire

Mais c'est la création des couleurs qui me chiffonne

C'est pas possible, hein? Mais si! (j'ai demandé à la SNCF, mais il
m'ont dit que cette pub était périmé)


A bientôt

Rex










Avatar
FFO
Salut à toi

1° astuce :

Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D5")


2° astuce

For i = 1 To Sheets("Wallonie").Shapes.Count
Sheets("Wallonie").Shapes(i).Select
On Error Resume Next
Ligne = 0
Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name,
LookIn:=xlValues, LookAt:=xlWhole).Row
If Ligne <> 0 Then
Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D" & Ligne)
Else
MsgBox("Le nom " & Sheets("Wallonie").Shapes(i).Name & " est inexistant")
End If
Next

Celà devrait faire

Dis moi !!!!!!
Avatar
Modeste
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :

xxxxxxxxxxxxxxxxxxxxxxx
Sheets("Wallonie").Shapes("Rixensart").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et ce que je voudrais, ce sont deux astuces
Une pour que la valeur de la couleur soit celle afficher dans une
cellule (D5 dans ce cas-ci)
Deuxième astuces
Comment faire pour que cela se passe pour toutes les formes de ma
feuille? En prenant bien sur le chiffre de couleur dans la colonne D
sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des
données dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5 14
etc 4 25 53





1 - Feuilles ENTREE
nommer les plages Communes et Tableaux
2 - Feuille WALLONIE
associer aux différentes shapes souhaitées la macro ci-dessous

Option Explicit

Sub ColorShape()
Dim myshape As Shape
Dim selectedshape As String
Dim myindex As Long
'------ retrieve selected shape name
selectedshape = Application.Caller
' ------retrieve current line from Communes
myindex = Application.Index([tableaux], Application.Match(selectedshape, [Communes], 0), 1)
MsgBox selectedshape & Chr(10) & myindex & " Tableaux"
'------- qualification of the correct shape to avoid physical selection
Set myshape = Sheets("Wallonie").Shapes(selectedshape)
With myshape.Fill
.Visible = msoTrue
.Solid
'------- immediate IF
'------- 10 is lower value, 11 is schemeColor for green
'------- 20 is higher value, 10 is schemecolor for red, 12 is schemecolor for blue
.ForeColor.SchemeColor = IIf(myindex < 10, 11, IIf(myindex < 20, 10, 12))
End With

End Sub
Avatar
michdenis
Bonjour,

Quelques questions :

Dans ta colonne "Rixensart" est-ce que tu renseignes
ces valeurs manuellement ou as-tu des formules dans
ces cellules qui affichent le résultat ?

Veux-tu dire que tu as une "shape" dans la cellule de la
colonne D liée à la valeur de la cellule de la colonne A
sur la même ligne ?

Ce que tu veux comme résultat : Si la valeur en colonne A,
la shape en D prend une certaine couleur... c'est ça ?




"rthompson" a écrit dans le message de groupe de
discussion : Ow$
Bonjour à toutes et tous

Je suis à nouveau plongé dans mon désir de créer une carte active
(Eh oui je sais, je suis con mais persistant)

Je voudrais savoir si il y a moyen de changer la couleur d'un objet suivant
la valeur d'une cellule


J'explique


Une forme dessinnée et nommée Rixensart (comme par hasard)
Cette forme est placée sur une feuille nommée Wallonie (encore un hasard)

Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des données
dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5
14
etc 4 25
53


Et je voudrais que la forme "Rixensart" soit verte si on est à moins de 10,
rouge si on est entre 11 et 20
Bleu si on est entre 21 et 30

Le tout par VBA, (j'en ai bien peur) et mise à jour par bouton
Le dernier truc je pourrais le faire

Mais c'est la création des couleurs qui me chiffonne

C'est pas possible, hein? Mais si! (j'ai demandé à la SNCF, mais il m'ont
dit que cette pub était périmé)


A bientôt

Rex
Avatar
rthompson
Bonjour et merci

Je ne comprends pas très bien la deuxième

Ou vas-tu chercher la valeur?
Que signifie tes Ligne et tes LookIn?

Je travail avec des plages nommées
mes Communes sont nommées EntreeCommunes
Et les valeurs EntreeTotal

A bientôt

Rex



"FFO" a écrit dans le message de news:

Salut à toi

1° astuce :

Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D5")


2° astuce

For i = 1 To Sheets("Wallonie").Shapes.Count
Sheets("Wallonie").Shapes(i).Select
On Error Resume Next
Ligne = 0
Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name,
LookIn:=xlValues, LookAt:=xlWhole).Row
If Ligne <> 0 Then
Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D" & Ligne)
Else
MsgBox("Le nom " & Sheets("Wallonie").Shapes(i).Name & " est inexistant")
End If
Next

Celà devrait faire

Dis moi !!!!!!



Avatar
rthompson
Bonjnour Modeste

Ben cette fois-ci j'y comprends rien

Et c'est bien la première fois que ta réponse me semble tellement
"nébuleuse"

Si j'affecte une macro à un objet, je dois cliquer dessus pour qu'elle
agisse, non?

Alors que ce que je cherche à faire et d'avoir une carte de Wallonie dont
les zones sont coloriées
en fonctions de leurs chiffres

Donc une macro générale affectée à un bouton


De toute façon merci pour ton aide

Et à très bientôt

Rex


"Modeste" a écrit dans le message de news:

Bonsour® rthompson avec ferveur ;o))) vous nous disiez :

xxxxxxxxxxxxxxxxxxxxxxx
Sheets("Wallonie").Shapes("Rixensart").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et ce que je voudrais, ce sont deux astuces
Une pour que la valeur de la couleur soit celle afficher dans une
cellule (D5 dans ce cas-ci)
Deuxième astuces
Comment faire pour que cela se passe pour toutes les formes de ma
feuille? En prenant bien sur le chiffre de couleur dans la colonne D
sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des
données dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5 14
etc 4 25 53





1 - Feuilles ENTREE
nommer les plages Communes et Tableaux
2 - Feuille WALLONIE
associer aux différentes shapes souhaitées la macro ci-dessous

Option Explicit

Sub ColorShape()
Dim myshape As Shape
Dim selectedshape As String
Dim myindex As Long
'------ retrieve selected shape name
selectedshape = Application.Caller
' ------retrieve current line from Communes
myindex = Application.Index([tableaux], Application.Match(selectedshape,
[Communes], 0), 1)
MsgBox selectedshape & Chr(10) & myindex & " Tableaux"
'------- qualification of the correct shape to avoid physical selection
Set myshape = Sheets("Wallonie").Shapes(selectedshape)
With myshape.Fill
.Visible = msoTrue
.Solid
'------- immediate IF
'------- 10 is lower value, 11 is schemeColor for green
'------- 20 is higher value, 10 is schemecolor for red, 12 is schemecolor
for blue
.ForeColor.SchemeColor = IIf(myindex < 10, 11, IIf(myindex < 20, 10,
12))
End With

End Sub
Avatar
Modeste
> Bonsour® rthompson avec ferveur ;o))) vous nous disiez :

xxxxxxxxxxxxxxxxxxxxxxx
Sheets("Wallonie").Shapes("Rixensart").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et ce que je voudrais, ce sont deux astuces
Une pour que la valeur de la couleur soit celle afficher dans une
cellule (D5 dans ce cas-ci)
Deuxième astuces
Comment faire pour que cela se passe pour toutes les formes de ma
feuille? En prenant bien sur le chiffre de couleur dans la colonne D
sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des
données dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5 14
etc 4 25 53







http://www.cijoint.fr/cjlink.php?file=cj201002/cijO5XxIOc.xls


1 - Feuilles ENTREE
nommer les plages Communes et Tableaux
2 - Feuille WALLONIE
associer aux différentes shapes souhaitées la macro ci-dessous

Option Explicit

Sub ColorShape()
Dim myshape As Shape
Dim selectedshape As String
Dim myindex As Long
'------ retrieve selected shape name
selectedshape = Application.Caller
' ------retrieve current line from Communes
myindex = Application.Index([tableaux],
Application.Match(selectedshape, [Communes], 0), 1)
MsgBox selectedshape & Chr(10) & myindex & " Tableaux"
'------- qualification of the correct shape to avoid physical
selection
Set myshape = Sheets("Wallonie").Shapes(selectedshape)
With myshape.Fill
.Visible = msoTrue
.Solid
'------- immediate IF
'------- 10 is lower value, 11 is schemeColor for green
'------- 20 is higher value, 10 is schemecolor for red, 12 is
schemecolor for blue
.ForeColor.SchemeColor = IIf(myindex < 10, 11, IIf(myindex <
20, 10, 12))
End With

End Sub


Avatar
rthompson
Bonjour Michdenis

La valeur est calculée
Et les shapes sont sur une autres feuille dessinées à main levé


Voici ce que j'aurais du faire au début

http://www.cijoint.fr/cjlink.php?file=cj201002/cijcoSHW79.xls

Un petit dessin vaut mieux qu'un long discours

Si tu y jette un oeil tu verras ce que je cherche à faire et tu pourras me
répondre

Enfin j'espère

A bientôt

Rex


"michdenis" a écrit dans le message de news:

Bonjour,

Quelques questions :

Dans ta colonne "Rixensart" est-ce que tu renseignes
ces valeurs manuellement ou as-tu des formules dans
ces cellules qui affichent le résultat ?

Veux-tu dire que tu as une "shape" dans la cellule de la
colonne D liée à la valeur de la cellule de la colonne A
sur la même ligne ?

Ce que tu veux comme résultat : Si la valeur en colonne A,
la shape en D prend une certaine couleur... c'est ça ?




"rthompson" a écrit dans le message de
groupe de
discussion : Ow$
Bonjour à toutes et tous

Je suis à nouveau plongé dans mon désir de créer une carte active
(Eh oui je sais, je suis con mais persistant)

Je voudrais savoir si il y a moyen de changer la couleur d'un objet
suivant
la valeur d'une cellule


J'explique


Une forme dessinnée et nommée Rixensart (comme par hasard)
Cette forme est placée sur une feuille nommée Wallonie (encore un hasard)

Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des
données
dans le style

Communes Revendeurs Utilisateurs Tableaux
Rixensart 1 5
14
etc 4 25
53


Et je voudrais que la forme "Rixensart" soit verte si on est à moins de
10,
rouge si on est entre 11 et 20
Bleu si on est entre 21 et 30

Le tout par VBA, (j'en ai bien peur) et mise à jour par bouton
Le dernier truc je pourrais le faire

Mais c'est la création des couleurs qui me chiffonne

C'est pas possible, hein? Mais si! (j'ai demandé à la SNCF, mais il m'ont
dit que cette pub était périmé)


A bientôt

Rex



1 2 3 4 5