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
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 et merci

J'étudie ta proposition

MAIS en attendant voici la dernière version de mon fichier

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

Rex


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

Rebonjour à toi

Tu demandes :
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


Le nom de la form est donc dans une cellule dont on doit déterminer la
ligne

Je te propose :

Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name,
LookIn:=xlValues, LookAt:=xlWhole).Row


Je cherche dans la feuille le nom de la Shape
(What:=Sheets("Wallonie").Shapes(i).Name) je regarde les valeurs des
cellules
(LookIn:=xlValues) et dans leur entier (LookAt:=xlWhole)
Je récupère ainsi le numéro de la ligne :

Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name,
LookIn:=xlValues, LookAt:=xlWhole).Row

Tu demandes :

Comment faire pour que cela se passe pour toutes les formes de ma feuille?

Je te propose:
d'effectuer la recherche des lignes sur l'ensemble des Shape avec la
variable i :

For i = 1 To Sheets("Wallonie").Shapes.Count

Ce qui donne le code au final

'Toutes les Shape
For i = 1 To Sheets("Wallonie").Shapes.Count
'Selection de la Shape
Sheets("Wallonie").Shapes(i).Select
On Error Resume Next
Ligne = 0
'Determination de la ligne de la cellule qui porte le nom de la Shape
Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name,
LookIn:=xlValues, LookAt:=xlWhole).Row
'Si la cellule est trouvé je donne la couleur à la Shape en fonction de la
valeur colonne D de la même ligne
If Ligne <> 0 Then
Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D" & Ligne)
'Sinon j'informe de l'absence du nom de la Shape dans la feuille
Else
MsgBox("Le nom " & Sheets("Wallonie").Shapes(i).Name & " est inexistant")
End If
Next


Est ce plus claire ainsi

Je crois avoir scrupuleusement répondu à ton cahier des charges

Dans la négative merci de m'expliquer

Dans l'attente de te lire



Avatar
FFO
Rebonjour à toi

Peux tu me dire dans ton document où je trouve ceci :

"En prenant bien sur le chiffre de couleur dans la colonne D sur la même
ligne que le nom de la forme"


La colonne D est desespérément vide !!!!!!

Il n'y a nulle par des noms de form

Je n'y comprend absolument rien

Merci de me sortir de cet épais brouillard
Avatar
michdenis
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
Daniel.C
Fais attention aux noms de commune, il y a des espaces avant et parès
le nom, notamment pour Rixensart, ce qui fausse les calculs.
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

Le chiffre de la couleur a bougé depuis ce matin et ce trouve P
MAIS il ne s'agit pas du chiffre couleur EXCEL mais du total
Et je voudrais avoir une couleur différente pour des quantité entre 0 et 10;
11 et 20; 21 et 30; etc

Les noms des formes sont définis lors de leur créations en indiquant le nom
dans la case au dessus de A1
Et ces noms sont des noms de communes qui se trouve dans la colonne O
Ces deux info sont des plages nommées EntreeListeCommuneTotal et
EntreeListeCommune

MAIS je viens de constater une erreur de ma part
Et copiant les noms de communes il y a chaque fois un espace devant
Donc je suis entrain de corriger cela

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

Ai-je allumé un tout petit peu tes phares anti-brouillard?

Dis-moi quoi et je réagis

En tous les cas merci de t'intéresser à mon cas

Rex








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

Rebonjour à toi

Peux tu me dire dans ton document où je trouve ceci :

"En prenant bien sur le chiffre de couleur dans la colonne D sur la même
ligne que le nom de la forme"


La colonne D est desespérément vide !!!!!!

Il n'y a nulle par des noms de form

Je n'y comprend absolument rien

Merci de me sortir de cet épais brouillard




Avatar
Daniel.C
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
michdenis
J'ai apporté une correction suite à une meilleure
compréhension de la présentation de tes données !

'---------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, R As Range, X As Integer
Dim Commune As String, Ligne 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
Commune = Application.Index(Range("B:B"), X)
Ligne = Application.Match(Commune, Range("K:K"), 1)
Select Case Range("H" & Ligne).Value
Case Is <= 10
couleur = vbGreen
Case Is <= 20
couleur = vbRed
Case Is <= 30
couleur = vbBlue
End Select

With Sheet1
.Shapes("Rixensart" & Ligne).Fill.ForeColor.RGB = couleur
End With
Next
End If
End Sub
'---------------------------------------------



"michdenis" a écrit dans le message de groupe de discussion :

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
FFO
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
Daniel.C
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 !!!!!!














1 2 3 4 5