Coloriage d'objet dessin

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 6
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
rthompson
Le #21117511
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" 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




Daniel.C
Le #21117701
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" 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






rthompson
Le #21117851
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"
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" 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










FFO
Le #21117941
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 !!!!!!
Modeste
Le #21118111
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
michdenis
Le #21118091
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" 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
rthompson
Le #21118081
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"
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 !!!!!!



rthompson
Le #21118251
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"
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
Modeste
Le #21118241
> 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


rthompson
Le #21118231
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"
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" 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



Publicité
Poster une réponse
Anonyme