Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
xxxxxxxxxxxxxxxxxxxxxxx Sheets("Wallonie").Shapes("Rixensart").Select Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5 Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Et ce que je voudrais, ce sont deux astuces Une pour que la valeur de la couleur soit celle afficher dans une cellule (D5 dans ce cas-ci) Deuxième astuces Comment faire pour que cela se passe pour toutes les formes de ma feuille? En prenant bien sur le chiffre de couleur dans la colonne D sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des données dans le style
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
"Modeste" <gd@libre.fr> a écrit dans le message de news:
OnGBbqMpKHA.1892@TK2MSFTNGP02.phx.gbl...
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
xxxxxxxxxxxxxxxxxxxxxxx
Sheets("Wallonie").Shapes("Rixensart").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et ce que je voudrais, ce sont deux astuces
Une pour que la valeur de la couleur soit celle afficher dans une
cellule (D5 dans ce cas-ci)
Deuxième astuces
Comment faire pour que cela se passe pour toutes les formes de ma
feuille? En prenant bien sur le chiffre de couleur dans la colonne D
sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des
données dans le style
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
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
xxxxxxxxxxxxxxxxxxxxxxx Sheets("Wallonie").Shapes("Rixensart").Select Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5 Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Et ce que je voudrais, ce sont deux astuces Une pour que la valeur de la couleur soit celle afficher dans une cellule (D5 dans ce cas-ci) Deuxième astuces Comment faire pour que cela se passe pour toutes les formes de ma feuille? En prenant bien sur le chiffre de couleur dans la colonne D sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des données dans le style
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
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
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
For i = 1 To Sheets("Wallonie").Shapes.Count Sheets("Wallonie").Shapes(i).Select On Error Resume Next Ligne = 0 Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name, LookIn:=xlValues, LookAt:=xlWhole).Row If Ligne <> 0 Then Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D" & Ligne) Else MsgBox("Le nom " & Sheets("Wallonie").Shapes(i).Name & " est inexistant") End If Next
Celà devrait faire
Dis moi !!!!!!
rthompson
Bonjour 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
"Modeste" a écrit dans le message de news:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
xxxxxxxxxxxxxxxxxxxxxxx Sheets("Wallonie").Shapes("Rixensart").Select Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5 Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Et ce que je voudrais, ce sont deux astuces Une pour que la valeur de la couleur soit celle afficher dans une cellule (D5 dans ce cas-ci) Deuxième astuces Comment faire pour que cela se passe pour toutes les formes de ma feuille? En prenant bien sur le chiffre de couleur dans la colonne D sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des données dans le style
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
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
"Modeste" <gd@libre.fr> a écrit dans le message de news:
OTerZ5MpKHA.3792@TK2MSFTNGP06.phx.gbl...
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
xxxxxxxxxxxxxxxxxxxxxxx
Sheets("Wallonie").Shapes("Rixensart").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et ce que je voudrais, ce sont deux astuces
Une pour que la valeur de la couleur soit celle afficher dans une
cellule (D5 dans ce cas-ci)
Deuxième astuces
Comment faire pour que cela se passe pour toutes les formes de ma
feuille? En prenant bien sur le chiffre de couleur dans la colonne D
sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des
données dans le style
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
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
"Modeste" a écrit dans le message de news:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
xxxxxxxxxxxxxxxxxxxxxxx Sheets("Wallonie").Shapes("Rixensart").Select Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5 Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Et ce que je voudrais, ce sont deux astuces Une pour que la valeur de la couleur soit celle afficher dans une cellule (D5 dans ce cas-ci) Deuxième astuces Comment faire pour que cela se passe pour toutes les formes de ma feuille? En prenant bien sur le chiffre de couleur dans la colonne D sur la même ligne que le nom de la forme
Sur une feuille nommée ENTREE (mais quelle immagination!) j'ai des données dans le style
1 - Feuilles ENTREE nommer les plages Communes et Tableaux 2 - Feuille WALLONIE associer aux différentes shapes souhaitées la macro ci-dessous
Option Explicit
Sub ColorShape() Dim myshape As Shape Dim selectedshape As String Dim myindex As Long '------ retrieve selected shape name selectedshape = Application.Caller ' ------retrieve current line from Communes myindex = Application.Index([tableaux], Application.Match(selectedshape, [Communes], 0), 1) MsgBox selectedshape & Chr(10) & myindex & " Tableaux" '------- qualification of the correct shape to avoid physical selection Set myshape = Sheets("Wallonie").Shapes(selectedshape) With myshape.Fill .Visible = msoTrue .Solid '------- immediate IF '------- 10 is lower value, 11 is schemeColor for green '------- 20 is higher value, 10 is schemecolor for red, 12 is schemecolor for blue .ForeColor.SchemeColor = IIf(myindex < 10, 11, IIf(myindex < 20, 10, 12)) End With
End Sub
Modeste
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
Ben cette fois-ci j'y comprends rien 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
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
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
Ben cette fois-ci j'y comprends rien
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
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
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
Ben cette fois-ci j'y comprends rien 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
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
Daniel.C
Quelle est la plage de cellules servant au coloriage ?
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 !!!!!!
Quelle est la plage de cellules servant au coloriage ?
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
For i = 1 To Sheets("Wallonie").Shapes.Count Sheets("Wallonie").Shapes(i).Select On Error Resume Next Ligne = 0 Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name, LookIn:=xlValues, LookAt:=xlWhole).Row If Ligne <> 0 Then Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D" & Ligne) Else MsgBox("Le nom " & Sheets("Wallonie").Shapes(i).Name & " est inexistant") End If Next
Celà devrait faire
Dis moi !!!!!!
Modeste
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
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
;o)))
beaucoup de boulot (creation des shapes et de manques ....
les noms de communes ne sont pas propres (présence d'espaces et car(0160))
la shape Estampuis est crée mais il n'y a pas de commune Estampuis
Sub ColorShape()
Dim myindex As Long
Dim c As Shape
On Error GoTo suivant
For Each c In Sheets("Wallonie").Shapes
myindex = Application.Index([Totcommunes], Application.Match(UCase(c.Name), [Communes], 0), 1)
With c.Fill
.Visible = msoTrue
.Solid
'------- immediate IF
'------- 10 is lower value, 11 is schemeColor for green
'------- 20 is higher value, 10 is schemecolor for red, 12 is schemecolor for blue
.ForeColor.SchemeColor = IIf(myindex < 10, 11, IIf(myindex < 20, 10, 12))
End With
suivant:
;o))) beaucoup de boulot (creation des shapes et de manques .... les noms de communes ne sont pas propres (présence d'espaces et car(0160)) la shape Estampuis est crée mais il n'y a pas de commune Estampuis
Sub ColorShape() Dim myindex As Long Dim c As Shape On Error GoTo suivant For Each c In Sheets("Wallonie").Shapes myindex = Application.Index([Totcommunes], Application.Match(UCase(c.Name), [Communes], 0), 1) With c.Fill .Visible = msoTrue .Solid '------- immediate IF '------- 10 is lower value, 11 is schemeColor for green '------- 20 is higher value, 10 is schemecolor for red, 12 is schemecolor for blue .ForeColor.SchemeColor = IIf(myindex < 10, 11, IIf(myindex < 20, 10, 12)) End With suivant:
Next
End Sub
rthompson
Bonjour
Bien vu!!
Je viens de créer deux nouvelles plages
EntreeListeCommuneTotal pour les chiffres EntreeListeCommuneTotal pour les noms des communes
Rex
"Daniel.C" a écrit dans le message de news: %
Quelle est la plage de cellules servant au coloriage ?
For i = 1 To Sheets("Wallonie").Shapes.Count Sheets("Wallonie").Shapes(i).Select On Error Resume Next Ligne = 0 Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name, LookIn:=xlValues, LookAt:=xlWhole).Row If Ligne <> 0 Then Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D" & Ligne) Else MsgBox("Le nom " & Sheets("Wallonie").Shapes(i).Name & " est inexistant") End If Next
Celà devrait faire
Dis moi !!!!!!
Bonjour
Bien vu!!
Je viens de créer deux nouvelles plages
EntreeListeCommuneTotal pour les chiffres
EntreeListeCommuneTotal pour les noms des communes
Rex
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
%23xxIuGNpKHA.5776@TK2MSFTNGP04.phx.gbl...
Quelle est la plage de cellules servant au coloriage ?
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
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 !!!!!!
Daniel.C
Tu peux renvoyer le classeur ? Daniel
Bonjour
Bien vu!!
Je viens de créer deux nouvelles plages
EntreeListeCommuneTotal pour les chiffres EntreeListeCommuneTotal pour les noms des communes
Rex
"Daniel.C" a écrit dans le message de news: %
Quelle est la plage de cellules servant au coloriage ?
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 !!!!!!
Tu peux renvoyer le classeur ?
Daniel
Bonjour
Bien vu!!
Je viens de créer deux nouvelles plages
EntreeListeCommuneTotal pour les chiffres
EntreeListeCommuneTotal pour les noms des communes
Rex
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
%23xxIuGNpKHA.5776@TK2MSFTNGP04.phx.gbl...
Quelle est la plage de cellules servant au coloriage ?
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
For i = 1 To Sheets("Wallonie").Shapes.Count Sheets("Wallonie").Shapes(i).Select On Error Resume Next Ligne = 0 Ligne = Cells.Find(What:=Sheets("Wallonie").Shapes(i).Name, LookIn:=xlValues, LookAt:=xlWhole).Row If Ligne <> 0 Then Selection.ShapeRange.Fill.ForeColor.SchemeColor = Range("D" & Ligne) Else MsgBox("Le nom " & Sheets("Wallonie").Shapes(i).Name & " est inexistant") End If Next
Celà devrait faire
Dis moi !!!!!!
rthompson
Bonjour
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
"Modeste" a écrit dans le message de news:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
Ben cette fois-ci j'y comprends rien 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
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
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
"Modeste" <gd@libre.fr> a écrit dans le message de news:
OnaUNKNpKHA.5696@TK2MSFTNGP04.phx.gbl...
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
Ben cette fois-ci j'y comprends rien
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
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
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
"Modeste" a écrit dans le message de news:
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :
Ben cette fois-ci j'y comprends rien 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
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
FFO
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
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
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