On Wednesday, February 03, 2010 5:08 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 5:31 AM rthompson wrote:
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 deOn Wednesday, February 03, 2010 6:12 AM Daniel.C wrote:
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
DanielOn Wednesday, February 03, 2010 6:31 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 7:14 AM FFO wrote:
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 !!!!!!On Wednesday, February 03, 2010 7:16 AM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
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 SubOn Wednesday, February 03, 2010 7:29 AM michdenis wrote:
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
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
RexOn Wednesday, February 03, 2010 7:30 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 7:37 AM rthompson wrote:
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
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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 SubOn Wednesday, February 03, 2010 7:42 AM Modeste wrote:
des
http://www.cijoint.fr/cjlink.php?file=cj201002/cijO5XxIOc.xlsOn Wednesday, February 03, 2010 7:44 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 7:44 AM rthompson wrote:
Voici le fichier
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcoSHW79.xls
Rex
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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 SubOn Wednesday, February 03, 2010 7:44 AM rthompson wrote:
Et voici le fichier
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcoSHW79.xls
RexOn Wednesday, February 03, 2010 7:49 AM rthompson wrote:
Bonjour et merci
Je comprends un peu mieux ce que tu me montres
Mais ce n'est pas le but recherch?
Je gardes ton fichier, il me servira j'en suis certains
Merci
J'ai post? mon fichier, tu l'as vu?
Rex
http://www.cijoint.fr/cjlink.php?file=cj201002/cijO5XxIOc.xlsOn Wednesday, February 03, 2010 7:51 AM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
alors simplement :
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([tableaux], Application.Match(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
Next
End SubOn Wednesday, February 03, 2010 8:06 AM Daniel.C wrote:
Quelle est la plage de cellules servant au coloriage ?On Wednesday, February 03, 2010 8:21 AM Modeste wrote:
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 SubOn Wednesday, February 03, 2010 8:25 AM rthompson wrote:
Bonjour
Bien vu!!
Je viens de cr?er deux nouvelles plages
EntreeListeCommuneTotal pour les chiffres
EntreeListeCommuneTotal pour les noms des communes
RexOn Wednesday, February 03, 2010 8:27 AM Daniel.C wrote:
Tu peux renvoyer le classeur ?
DanielOn Wednesday, February 03, 2010 8:29 AM rthompson wrote:
Bonjour
Voici ton code avec mes plages nomm?es
xxxxxxxxxxxxxxxxxxxxxxxxxx
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([EntreeListeCommuneTotal],
Application.Match(c.Name, [EntreeListeCommune], 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
Next
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et il me met Error 13 Type Mismatch
Que cherche-t-il?
Rex
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
alors simplement :
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([tableaux], Application.Match(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
Next
End SubOn Wednesday, February 03, 2010 8:30 AM FFO wrote:
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 lireOn Wednesday, February 03, 2010 8:32 AM rthompson wrote:
Y a qu'? demander
http://www.cijoint.fr/cjlink.php?file=cj201002/cij7RWsSr8.xls
RexOn Wednesday, February 03, 2010 8:35 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 8:41 AM FFO wrote:
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 brouillardOn Wednesday, February 03, 2010 8:55 AM michdenis wrote:
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
RexOn Wednesday, February 03, 2010 9:01 AM Daniel.C wrote:
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.
DanielOn Wednesday, February 03, 2010 9:09 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 9:25 AM Daniel.C wrote:
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
DanielOn Wednesday, February 03, 2010 9:29 AM michdenis wrote:
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
'---------------------------------------------
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
RexOn Wednesday, February 03, 2010 9:59 AM FFO wrote:
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??pondreOn Wednesday, February 03, 2010 9:59 AM Daniel.C wrote:
Erratum.
Lire :
Pour Rixensart (C55)
au lieu de :
Pour Rixensart (B55)
DanielOn Wednesday, February 03, 2010 10:00 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 10:11 AM michdenis wrote:
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 ?On Wednesday, February 03, 2010 10:12 AM rthompson wrote:
Bonjour
Voici la version actuelle
Rex
http://www.cijoint.fr/cjlink.php?file=cj201002/cijQ8VAI9B.xlsOn Wednesday, February 03, 2010 10:17 AM rthompson wrote:
Ben oui
http://www.cijoint.fr/cjlink.php?file=cj201002/cijQ8VAI9B.xls
Voici la version que j'utilise actuellement
RexOn Wednesday, February 03, 2010 10:23 AM rthompson wrote:
Bonjour et merci
Cela fonctionne
MAIS
Je dois absolument m'absenter pour quelques heures
Je te r?ponds tout ? l'heure
RexOn Wednesday, February 03, 2010 10:25 AM rthompson wrote:
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
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 SubOn Wednesday, February 03, 2010 10:31 AM michdenis wrote:
| 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 !On Wednesday, February 03, 2010 12:51 PM rthompson wrote:
Et je t'en remercie
Je commence ? avoir une id?e de la piste que je vais suivre
A bient?t
RexOn Wednesday, February 03, 2010 1:21 PM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
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.xlsOn Wednesday, February 03, 2010 2:34 PM michdenis wrote:
| 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.xlsOn Wednesday, February 03, 2010 2:42 PM rthompson wrote:
Bonsoir
Avant m?me de regarder de plus pr?s ta proposition
et avant que je ne l'oublie
Comment as-tu fais pour supprimer tous les espaces des noms de communes
Quand moi j'ai fais un Replace cela n'a pas fonctionn?
As tant?t
Rex
PS
Pour le reste je suis encore occup?
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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.xlsOn Wednesday, February 03, 2010 2:49 PM michdenis wrote:
Dans la fen?tre Rechercher/Remplacer
Dans la case Rechercher : en tenant la touche Alt enfonc?e ? gauche
de la barre d'espacement , tu tapes, 0160... lorsque tu rel?cheras
un espace sera ajout?. Dans la case remplacer, tu la laisses totalement
vide.
"rthompson" a ?crit dans le message de groupe de discussion
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
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 SubOn Wednesday, February 03, 2010 3:37 PM rthompson wrote:
Ben non
Il me met le m?me message d'erreur que si j'y mets juste un espace
Il n'y a pas de donn?es ? remplacer
Et il y en a des espaces dans les cellules
Et cela m?me si je s?lectionne toute la feuille ou une seule cellule
Bizarre, bizarre
Si tu as une id?e????????
Mais pour le reste je vais faire une r?ponse g?n?rale dans une minute
RexOn Wednesday, February 03, 2010 3:40 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
RexOn Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
RexOn Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
Rex
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 SubOn Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
RexOn Wednesday, February 03, 2010 3:42 PM Daniel.C wrote:
J'ai eu un cas semblable ce matin. Ca ne s'ex?cutait pas avec Excel
mais une macro en venait ? bout :
Sub Nettoyer()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.UsedRange
c.Value = WorksheetFunction.Clean(c.Value)
c.Value = WorksheetFunction.Trim(c.Value)
Next c
On Wednesday, February 03, 2010 5:08 AM rthompson wrote:
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
On Wednesday, February 03, 2010 5:31 AM rthompson wrote:
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" <roubliemoithompson@softscreen.be> a ?crit dans le message de
On Wednesday, February 03, 2010 6:12 AM Daniel.C wrote:
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
On Wednesday, February 03, 2010 6:31 AM rthompson wrote:
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
On Wednesday, February 03, 2010 7:14 AM FFO wrote:
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 !!!!!!
On Wednesday, February 03, 2010 7:16 AM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
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
On Wednesday, February 03, 2010 7:29 AM michdenis wrote:
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
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
On Wednesday, February 03, 2010 7:30 AM rthompson wrote:
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
7F813936-7EF6-4F5B-9132-F17BF66AF503@microsoft.com...
On Wednesday, February 03, 2010 7:37 AM rthompson wrote:
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
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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
On Wednesday, February 03, 2010 7:42 AM Modeste wrote:
des
http://www.cijoint.fr/cjlink.php?file=cj201002/cijO5XxIOc.xls
On Wednesday, February 03, 2010 7:44 AM rthompson wrote:
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
E6898A74-FE75-4FB6-9B26-E862A3EFBE57@microsoft.com...
On Wednesday, February 03, 2010 7:44 AM rthompson wrote:
Voici le fichier
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcoSHW79.xls
Rex
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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
On Wednesday, February 03, 2010 7:44 AM rthompson wrote:
Et voici le fichier
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcoSHW79.xls
Rex
7F813936-7EF6-4F5B-9132-F17BF66AF503@microsoft.com...
On Wednesday, February 03, 2010 7:49 AM rthompson wrote:
Bonjour et merci
Je comprends un peu mieux ce que tu me montres
Mais ce n'est pas le but recherch?
Je gardes ton fichier, il me servira j'en suis certains
Merci
J'ai post? mon fichier, tu l'as vu?
Rex
http://www.cijoint.fr/cjlink.php?file=cj201002/cijO5XxIOc.xls
On Wednesday, February 03, 2010 7:51 AM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
alors simplement :
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([tableaux], Application.Match(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
Next
End Sub
On Wednesday, February 03, 2010 8:06 AM Daniel.C wrote:
Quelle est la plage de cellules servant au coloriage ?
On Wednesday, February 03, 2010 8:21 AM Modeste wrote:
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
On Wednesday, February 03, 2010 8:25 AM rthompson wrote:
Bonjour
Bien vu!!
Je viens de cr?er deux nouvelles plages
EntreeListeCommuneTotal pour les chiffres
EntreeListeCommuneTotal pour les noms des communes
Rex
On Wednesday, February 03, 2010 8:27 AM Daniel.C wrote:
Tu peux renvoyer le classeur ?
Daniel
On Wednesday, February 03, 2010 8:29 AM rthompson wrote:
Bonjour
Voici ton code avec mes plages nomm?es
xxxxxxxxxxxxxxxxxxxxxxxxxx
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([EntreeListeCommuneTotal],
Application.Match(c.Name, [EntreeListeCommune], 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
Next
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et il me met Error 13 Type Mismatch
Que cherche-t-il?
Rex
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
alors simplement :
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([tableaux], Application.Match(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
Next
End Sub
On Wednesday, February 03, 2010 8:30 AM FFO wrote:
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
On Wednesday, February 03, 2010 8:32 AM rthompson wrote:
Y a qu'? demander
http://www.cijoint.fr/cjlink.php?file=cj201002/cij7RWsSr8.xls
Rex
On Wednesday, February 03, 2010 8:35 AM rthompson wrote:
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
F4EBD61E-52C0-4D14-A1D1-8B373B2A6764@microsoft.com...
On Wednesday, February 03, 2010 8:41 AM FFO wrote:
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
On Wednesday, February 03, 2010 8:55 AM michdenis wrote:
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
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
E6898A74-FE75-4FB6-9B26-E862A3EFBE57@microsoft.com...
On Wednesday, February 03, 2010 9:01 AM Daniel.C wrote:
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
On Wednesday, February 03, 2010 9:09 AM rthompson wrote:
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
BAC39403-D792-440C-8A50-29737CE02CFE@microsoft.com...
On Wednesday, February 03, 2010 9:25 AM Daniel.C wrote:
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
On Wednesday, February 03, 2010 9:29 AM michdenis wrote:
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
'---------------------------------------------
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
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
On Wednesday, February 03, 2010 9:59 AM FFO wrote:
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
On Wednesday, February 03, 2010 9:59 AM Daniel.C wrote:
Erratum.
Lire :
Pour Rixensart (C55)
au lieu de :
Pour Rixensart (B55)
Daniel
On Wednesday, February 03, 2010 10:00 AM rthompson wrote:
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
On Wednesday, February 03, 2010 10:11 AM michdenis wrote:
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 ?
On Wednesday, February 03, 2010 10:12 AM rthompson wrote:
Bonjour
Voici la version actuelle
Rex
http://www.cijoint.fr/cjlink.php?file=cj201002/cijQ8VAI9B.xls
3FEDA5DA-069E-43C9-9AFF-3E5FDF766EA8@microsoft.com...
On Wednesday, February 03, 2010 10:17 AM rthompson wrote:
Ben oui
http://www.cijoint.fr/cjlink.php?file=cj201002/cijQ8VAI9B.xls
Voici la version que j'utilise actuellement
Rex
On Wednesday, February 03, 2010 10:23 AM rthompson wrote:
Bonjour et merci
Cela fonctionne
MAIS
Je dois absolument m'absenter pour quelques heures
Je te r?ponds tout ? l'heure
Rex
On Wednesday, February 03, 2010 10:25 AM rthompson wrote:
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
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
On Wednesday, February 03, 2010 10:31 AM michdenis wrote:
| 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 !
On Wednesday, February 03, 2010 12:51 PM rthompson wrote:
Et je t'en remercie
Je commence ? avoir une id?e de la piste que je vais suivre
A bient?t
Rex
On Wednesday, February 03, 2010 1:21 PM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
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
On Wednesday, February 03, 2010 2:34 PM michdenis wrote:
| 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
On Wednesday, February 03, 2010 2:42 PM rthompson wrote:
Bonsoir
Avant m?me de regarder de plus pr?s ta proposition
et avant que je ne l'oublie
Comment as-tu fais pour supprimer tous les espaces des noms de communes
Quand moi j'ai fais un Replace cela n'a pas fonctionn?
As tant?t
Rex
PS
Pour le reste je suis encore occup?
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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
On Wednesday, February 03, 2010 2:49 PM michdenis wrote:
Dans la fen?tre Rechercher/Remplacer
Dans la case Rechercher : en tenant la touche Alt enfonc?e ? gauche
de la barre d'espacement , tu tapes, 0160... lorsque tu rel?cheras
un espace sera ajout?. Dans la case remplacer, tu la laisses totalement
vide.
"rthompson" <roubliemoithompson@skynet.be> a ?crit dans le message de groupe de discussion
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
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
On Wednesday, February 03, 2010 3:37 PM rthompson wrote:
Ben non
Il me met le m?me message d'erreur que si j'y mets juste un espace
Il n'y a pas de donn?es ? remplacer
Et il y en a des espaces dans les cellules
Et cela m?me si je s?lectionne toute la feuille ou une seule cellule
Bizarre, bizarre
Si tu as une id?e????????
Mais pour le reste je vais faire une r?ponse g?n?rale dans une minute
Rex
CCAC66FF-8C7B-4A3A-818C-13822454E5FC@microsoft.com...
On Wednesday, February 03, 2010 3:40 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
Rex
On Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
Rex
CCAC66FF-8C7B-4A3A-818C-13822454E5FC@microsoft.com...
On Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
Rex
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
On Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
Rex
F4EBD61E-52C0-4D14-A1D1-8B373B2A6764@microsoft.com...
On Wednesday, February 03, 2010 3:42 PM Daniel.C wrote:
J'ai eu un cas semblable ce matin. Ca ne s'ex?cutait pas avec Excel
mais une macro en venait ? bout :
Sub Nettoyer()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.UsedRange
c.Value = WorksheetFunction.Clean(c.Value)
c.Value = WorksheetFunction.Trim(c.Value)
Next c
On Wednesday, February 03, 2010 5:08 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 5:31 AM rthompson wrote:
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 deOn Wednesday, February 03, 2010 6:12 AM Daniel.C wrote:
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
DanielOn Wednesday, February 03, 2010 6:31 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 7:14 AM FFO wrote:
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 !!!!!!On Wednesday, February 03, 2010 7:16 AM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
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 SubOn Wednesday, February 03, 2010 7:29 AM michdenis wrote:
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
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
RexOn Wednesday, February 03, 2010 7:30 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 7:37 AM rthompson wrote:
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
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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 SubOn Wednesday, February 03, 2010 7:42 AM Modeste wrote:
des
http://www.cijoint.fr/cjlink.php?file=cj201002/cijO5XxIOc.xlsOn Wednesday, February 03, 2010 7:44 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 7:44 AM rthompson wrote:
Voici le fichier
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcoSHW79.xls
Rex
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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 SubOn Wednesday, February 03, 2010 7:44 AM rthompson wrote:
Et voici le fichier
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcoSHW79.xls
RexOn Wednesday, February 03, 2010 7:49 AM rthompson wrote:
Bonjour et merci
Je comprends un peu mieux ce que tu me montres
Mais ce n'est pas le but recherch?
Je gardes ton fichier, il me servira j'en suis certains
Merci
J'ai post? mon fichier, tu l'as vu?
Rex
http://www.cijoint.fr/cjlink.php?file=cj201002/cijO5XxIOc.xlsOn Wednesday, February 03, 2010 7:51 AM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
alors simplement :
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([tableaux], Application.Match(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
Next
End SubOn Wednesday, February 03, 2010 8:06 AM Daniel.C wrote:
Quelle est la plage de cellules servant au coloriage ?On Wednesday, February 03, 2010 8:21 AM Modeste wrote:
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 SubOn Wednesday, February 03, 2010 8:25 AM rthompson wrote:
Bonjour
Bien vu!!
Je viens de cr?er deux nouvelles plages
EntreeListeCommuneTotal pour les chiffres
EntreeListeCommuneTotal pour les noms des communes
RexOn Wednesday, February 03, 2010 8:27 AM Daniel.C wrote:
Tu peux renvoyer le classeur ?
DanielOn Wednesday, February 03, 2010 8:29 AM rthompson wrote:
Bonjour
Voici ton code avec mes plages nomm?es
xxxxxxxxxxxxxxxxxxxxxxxxxx
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([EntreeListeCommuneTotal],
Application.Match(c.Name, [EntreeListeCommune], 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
Next
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et il me met Error 13 Type Mismatch
Que cherche-t-il?
Rex
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
alors simplement :
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([tableaux], Application.Match(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
Next
End SubOn Wednesday, February 03, 2010 8:30 AM FFO wrote:
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 lireOn Wednesday, February 03, 2010 8:32 AM rthompson wrote:
Y a qu'? demander
http://www.cijoint.fr/cjlink.php?file=cj201002/cij7RWsSr8.xls
RexOn Wednesday, February 03, 2010 8:35 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 8:41 AM FFO wrote:
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 brouillardOn Wednesday, February 03, 2010 8:55 AM michdenis wrote:
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
RexOn Wednesday, February 03, 2010 9:01 AM Daniel.C wrote:
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.
DanielOn Wednesday, February 03, 2010 9:09 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 9:25 AM Daniel.C wrote:
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
DanielOn Wednesday, February 03, 2010 9:29 AM michdenis wrote:
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
'---------------------------------------------
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
RexOn Wednesday, February 03, 2010 9:59 AM FFO wrote:
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??pondreOn Wednesday, February 03, 2010 9:59 AM Daniel.C wrote:
Erratum.
Lire :
Pour Rixensart (C55)
au lieu de :
Pour Rixensart (B55)
DanielOn Wednesday, February 03, 2010 10:00 AM rthompson wrote:
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
RexOn Wednesday, February 03, 2010 10:11 AM michdenis wrote:
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 ?On Wednesday, February 03, 2010 10:12 AM rthompson wrote:
Bonjour
Voici la version actuelle
Rex
http://www.cijoint.fr/cjlink.php?file=cj201002/cijQ8VAI9B.xlsOn Wednesday, February 03, 2010 10:17 AM rthompson wrote:
Ben oui
http://www.cijoint.fr/cjlink.php?file=cj201002/cijQ8VAI9B.xls
Voici la version que j'utilise actuellement
RexOn Wednesday, February 03, 2010 10:23 AM rthompson wrote:
Bonjour et merci
Cela fonctionne
MAIS
Je dois absolument m'absenter pour quelques heures
Je te r?ponds tout ? l'heure
RexOn Wednesday, February 03, 2010 10:25 AM rthompson wrote:
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
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 SubOn Wednesday, February 03, 2010 10:31 AM michdenis wrote:
| 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 !On Wednesday, February 03, 2010 12:51 PM rthompson wrote:
Et je t'en remercie
Je commence ? avoir une id?e de la piste que je vais suivre
A bient?t
RexOn Wednesday, February 03, 2010 1:21 PM Modeste wrote:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
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.xlsOn Wednesday, February 03, 2010 2:34 PM michdenis wrote:
| 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.xlsOn Wednesday, February 03, 2010 2:42 PM rthompson wrote:
Bonsoir
Avant m?me de regarder de plus pr?s ta proposition
et avant que je ne l'oublie
Comment as-tu fais pour supprimer tous les espaces des noms de communes
Quand moi j'ai fais un Replace cela n'a pas fonctionn?
As tant?t
Rex
PS
Pour le reste je suis encore occup?
Bonsour? rthompson avec ferveur ;o))) vous nous disiez :
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.xlsOn Wednesday, February 03, 2010 2:49 PM michdenis wrote:
Dans la fen?tre Rechercher/Remplacer
Dans la case Rechercher : en tenant la touche Alt enfonc?e ? gauche
de la barre d'espacement , tu tapes, 0160... lorsque tu rel?cheras
un espace sera ajout?. Dans la case remplacer, tu la laisses totalement
vide.
"rthompson" a ?crit dans le message de groupe de discussion
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
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 SubOn Wednesday, February 03, 2010 3:37 PM rthompson wrote:
Ben non
Il me met le m?me message d'erreur que si j'y mets juste un espace
Il n'y a pas de donn?es ? remplacer
Et il y en a des espaces dans les cellules
Et cela m?me si je s?lectionne toute la feuille ou une seule cellule
Bizarre, bizarre
Si tu as une id?e????????
Mais pour le reste je vais faire une r?ponse g?n?rale dans une minute
RexOn Wednesday, February 03, 2010 3:40 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
RexOn Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
RexOn Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
Rex
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 SubOn Wednesday, February 03, 2010 3:41 PM rthompson wrote:
Bonsoir ? tous et toutes
Mis ? part le petit souci d'espace
Avec toutes les infos que j'ai pris ? l'un et ? l'autre
je crois pouvoir s?rieusement avancer dans ce fichier
Je vous remercie tous et nous nous retrouverons certainement tr?s bient?t
Mais en attendant je vais essayer d'avancer tout seul COMME UN GRAND
A tr?s bient?t
RexOn Wednesday, February 03, 2010 3:42 PM Daniel.C wrote:
J'ai eu un cas semblable ce matin. Ca ne s'ex?cutait pas avec Excel
mais une macro en venait ? bout :
Sub Nettoyer()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.UsedRange
c.Value = WorksheetFunction.Clean(c.Value)
c.Value = WorksheetFunction.Trim(c.Value)
Next c