OVH Cloud OVH Cloud

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

2 3 4 5 6
Avatar
rthompson
Bonjour

Cette fois on avance

Cela réagit mais les formes deviennent VERT

Quelle que soit le chiffre
Dons à mon avis il faut changer cette partie-ci
xxxxxxxxxxxxxxxxxxxxxxx
Select Case Range("H" & X).Value
Case Is <= 10
couleur = vbGreen
Case Is <= 20
couleur = vbRed
Case Is <= 30
couleur = vbBlue


xxxxxxxxxxxxxxxxxxxxxx
Comment fait-on pour dire que le montant est entre 11 et 20 par exemple

A bientôt

Rex


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

Je te propose ceci :

En supposant que tes shapes sont nommées suivant
le processus suivant :
Rixensart + et le numéro de la ligne de la commune en colonne K
En K2 : la commune est Alleur : Nom Shape : Rixenart2
En K3 : La commune est Amay : Nom Shape : Rixenart3
ainsi de suite...

Tu copies ceci dans la feuille module où s'affiche
le résultat de tes données "Sheet2"
à chaque fois que tu vas modifier tes données dans les colonnes
F, G ou H en Sheet2, s'il y a lieu, la couleur de la shape associée
va changer de couleur...

'-------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, R As Range, X As Integer
Set Rg = Intersect(Range("F2:H" & _
Range("K65536").End(xlUp).Row), Target)
If Not Rg Is Nothing Then
For Each R In Rg.Rows
X = R.Row
Select Case Range("H" & X).Value
Case Is <= 10
couleur = vbGreen
Case Is <= 20
couleur = vbRed
Case Is <= 30
couleur = vbBlue
End Select
With Sheet1
.Shapes("Rixensart" & X - 1).Fill.ForeColor.RGB = couleur
End With
Next
End If
End Sub
'-------------------------------------------




"rthompson" a écrit dans le message de
groupe de discussion
:
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






Avatar
michdenis
As-tu utilisé la dernière version que j'ai publiée?

| Cela réagit mais les formes deviennent VERT

Peu importe la valeur dans la cellule de cette
colonne Range("H" & Ligne).Value ?
Avatar
rthompson
Bonjour

Voici la version actuelle

Rex

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


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

Rebonjour à toi

"Le chiffre de la couleur a bougé depuis ce matin et ce trouve P"

Désolé je ne trouve absolument rien en colonne P dans ton document fourni


"Les noms des formes sont définis lors de leur créations en indiquant le
nom
dans la case au dessus de A1"

Il serait bon de nous transmettre un exemple ficelé pour que l'on
comprenne
et adapte nos propositions

"Pour le moment toutes les formes ne sont pas encore crées,
je voudrais savoir si cela fonctionne avant d'y passer des heures"

Un exemple ou deux serait salutaire pour tester nos propositions et
certain
de bien répondre à ton besoin


Dans l'attente d'un exemplaire complet pour mieux te répondre




Avatar
rthompson
Ben oui

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

Voici la version que j'utilise actuellement

Rex


"michdenis" a écrit dans le message de news:
%
As-tu utilisé la dernière version que j'ai publiée?

| Cela réagit mais les formes deviennent VERT

Peu importe la valeur dans la cellule de cette
colonne Range("H" & Ligne).Value ?







Avatar
rthompson
Bonjour et merci

Cela fonctionne

MAIS
Je dois absolument m'absenter pour quelques heures

Je te réponds tout à l'heure

Rex


"Daniel.C" a écrit dans le message de news:
%
Erratum.
Lire :
Pour Rixensart (C55)
au lieu de :
Pour Rixensart (B55)
Daniel
Regarde le classeur ci-dessous. le changement de couleur se produit quand
tu entres une valeur dans les colonnes G, H ou I. Pour Rixensart (B55),
entre une valeur différente des valeurs présentes et la carte est
actualisée :

http://cjoint.com/?cdps5iRVsU

Daniel

Y a qu'à demander

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


Rex



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

Tu peux renvoyer le classeur ?
Daniel

Bonjour

Bien vu!!

Je viens de créer deux nouvelles plages

EntreeListeCommuneTotal pour les chiffres
EntreeListeCommuneTotal pour les noms des communes


Rex



"Daniel.C" a écrit dans le message de news:
%
Quelle est la plage de cellules servant au coloriage ?

Et voici le fichier

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

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
Bonjour

OUI OUI OUI

Je sais que la petite aide ménagère dois passer faire le ménage

Je dois m'absenter quelques heures j'y travail tantôt et je te tiens au
courant

Rex


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

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

Voici le fichier

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



;o)))
beaucoup de boulot (creation des shapes et de manques ....
les noms de communes ne sont pas propres (présence d'espaces et car(0160))
la shape Estampuis est crée mais il n'y a pas de commune Estampuis

Sub ColorShape()
Dim myindex As Long
Dim c As Shape
On Error GoTo suivant
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([Totcommunes], Application.Match(UCase(c.Name),
[Communes], 0), 1)
With c.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
suivant:

Next

End Sub
Avatar
michdenis
| Voici la version que j'utilise actuellement

Désolé, s'il doit y avoir des modifications à faire
suite à ta présente version, c'est à toi de le faire !
je t'ai donné l'idée de base !
Avatar
rthompson
Et je t'en remercie

Je commence à avoir une idée de la piste que je vais suivre

A bientôt

Rex


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

| Voici la version que j'utilise actuellement

Désolé, s'il doit y avoir des modifications à faire
suite à ta présente version, c'est à toi de le faire !
je t'ai donné l'idée de base !



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

Ben oui

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

Voici la version que j'utilise actuellement




tu ne peux utiliser la colonne C (plage nommée [EntreeCommune]) pour faire une recherche efficace :
il y a des doublons !!!!!

il faut utiliser les colonnes L et M
après avoir nettoyé les espaces superfétatoires et car(0160)

http://www.cijoint.fr/cjlink.php?file=cj201002/cijx30boTF.xls
Avatar
michdenis
| tu ne peux utiliser la colonne C (plage nommée
| [EntreeCommune]) pour faire une recherche efficace :
| il y a des doublons !!!!!

A ) Lorsqu'il saisit une donnée dans une des colonnes G, H ou I
En utilisant l'événement Worksheet_Change, il récupère
le numéro de la ligne du target.
En utilisant la formule Index(C:C,Ligne) , il va obtenir le nom
de la commune ou il vient d'effectuer une modification.

B ) dans un deuxième temps, equiv(nom_commune;L:L;1) donne la
ligne ou la somme de la commune affectée par la modification.

C ) s'il y a une correspondance entre le nom (l'index) de la shape et
la ligne de la commune en L:L , ce sera suffisant pour affecter seulement
la bonne couleur à cette shape.

D ) Cette façon de faire permet de boucler sur chacune des lignes qu'un
utilisateur peut modifier : Exemple : supprime les données de 2 lignes
en même temps....


il faut utiliser les colonnes L et M
après avoir nettoyé les espaces superfétatoires et car(0160)

http://www.cijoint.fr/cjlink.php?file=cj201002/cijx30boTF.xls
2 3 4 5 6