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é
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
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" <michdenis@hotmail.com> a écrit dans le message de news:
u13dOiNpKHA.5776@TK2MSFTNGP04.phx.gbl...
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" <roubliemoithompson@skynet.be> a écrit dans le message de
groupe de discussion
: OxHQW6MpKHA.5328@TK2MSFTNGP04.phx.gbl...
Bonjour Michdenis
La valeur est calculée
Et les shapes sont sur une autres feuille dessinées à main levé
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" <michdenis@hotmail.com> a écrit dans le message de news:
E6898A74-FE75-4FB6-9B26-E862A3EFBE57@microsoft.com...
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" <roubliemoithompson@softscreen.be> a écrit dans le message de
groupe de
discussion : Ow$uNjLpKHA.5328@TK2MSFTNGP04.phx.gbl...
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
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é
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 ?
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 :
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 !!!!!!
Bonjour et merci
Cela fonctionne
MAIS
Je dois absolument m'absenter pour quelques heures
Je te réponds tout à l'heure
Rex
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
%23IOjGGOpKHA.3792@TK2MSFTNGP06.phx.gbl...
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 :
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
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 :
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
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 :
;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
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" <gd@libre.fr> a écrit dans le message de news:
unyZCBOpKHA.1544@TK2MSFTNGP06.phx.gbl...
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
;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:
;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
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 !
| 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 !
| 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)
| 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)
| 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)