Carte de France - Couleur département + couleur texte

apnart

XLDnaute Occasionnel
Bonjour,

Je suis en train de plancher sur une carte de France dont les départements seraient colorés de manière plus ou moins intense en fonction d'une valeur dans un tableau.

J'ai trouvé dans ce forum moultes infos qui m'ont bien fait avancer.

J'ai rencontré un soucis avec les couleurs utilisées par "SchemeColor", probablement car je développe mon truc sous 2007 et le sauvegarde en 2003 (compatibilité oblige avec mes collègues).

J'essaies donc d'utiliser les couleurs RGB pour avoir plus de précision.

Mon soucis (et msg d'erreur cité en titre) :

Si j'utilise ce code :
Code:
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(226, 0, 0)
ça fonctionne, mais evidemment, tous mes départements sont de la même couleur (et c'est pas le but)


Si j'utilise ce code :
Code:
Selection.ShapeRange.Fill.ForeColor.RGB = Dept.Offset(0, 6).Value
sachant que "Dept.Offset(0, 6).Value" me retourne la valeur "RGB(226, 0, 0)"
ça ne fonctionne pas :mad:

quand je clique sur debug pour voir l'erreur, c'est bien cette ligne qui est en cause, et quand je positionne la souris sur "Dept.Offset(0, 6).Value", j'obtiens bien la valeur voulue, mais elle est entre guillemets... ça peut être ça le soucis ?


J'espère que j'ai pas été trop confus et que vous pourrez m'aider :)

Merci d'avance,
Bruno.
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Shape RGB = "" run-time error 13 - Type mismatch - Carte de France

Bonjour apnart,
Je ne sais pas si je serai d'une grande utilité mais...
Je pense que le problème viens du fait que Dept.Offset(0, 6).Value renvoi un texte.
Quand tu l'utilise c'est comme si tu faisais
Code:
Selection.ShapeRange.Fill.ForeColor.RGB = "Toto"
Donc pour utiliser une variable il serai préférable que ta cellule renvoi un chiffre. Ensuite on peux imaginer quelque chose comme:
Code:
X = Dept.Offset(0, 6).Value
y = Dept.Offset(0, 7).Value 
Z =Dept.Offset(0, 8).Value 
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(x, y, z)
Cela reste a tester
Cordialement
 

Gorfael

XLDnaute Barbatruc
Re : Shape RGB = "" run-time error 13 - Type mismatch - Carte de France

Salut apnart et le forum
quand je clique sur debug pour voir l'erreur, c'est bien cette ligne qui est en cause, et quand je positionne la souris sur "Dept.Offset(0, 6).Value", j'obtiens bien la valeur voulue, mais elle est entre guillemets...
quelle est donc cette valeur secrète ???

À tout hasard, si j'ai bien compris, ta cellule doit être au format texte => mets-la à un format "nombre entier".
A+
 

Dranreb

XLDnaute Barbatruc
Re : Shape RGB = "" run-time error 13 - Type mismatch - Carte de France

Bonjour.
Ce petit utilitaire pour calculer des valeurs RGB (entre autre) pourrait vous être utile.
VB6FR à n'installer que s'il manque.
Cordialement
 

Pièces jointes

  • Couleurs.zip
    28.6 KB · Affichages: 131
  • Couleurs.zip
    28.6 KB · Affichages: 112
  • Couleurs.zip
    28.6 KB · Affichages: 109
  • VB6FR.zip
    23.5 KB · Affichages: 89
  • VB6FR.zip
    23.5 KB · Affichages: 95
  • VB6FR.zip
    23.5 KB · Affichages: 93

apnart

XLDnaute Occasionnel
Re : Shape RGB = "" run-time error 13 - Type mismatch - Carte de France

Je me permet de poursuivre sur ce fil...

C'est tout bon pour la coloration de mes départements.

Maintenant j'ai ajouté les noms des départements par dessus la carte (toujours en format dessin). J'ai nommé ces "textbox" avec le n° du département, et j'aimerais pouvoir changer la couleur de la font utilisée en fonction de la couleur d'arrière plan...

Bref, je voudrais faire comme pour le fond :
Code:
    For Each DeptFond In Feuil4.Range("A3:A98")
        ActiveSheet.Shapes(DeptFond.Value).Select
            RGBx = DeptFond.Offset(0, 5).Value
            RGBy = DeptFond.Offset(0, 6).Value
            RGBz = DeptFond.Offset(0, 7).Value
        Selection.ShapeRange.Fill.ForeColor.RGB = RGB(RGBx, RGBy, RGBz)
    Next DeptFond
Mais je ne trouve pas de syntaxe pour la couleur du texte ...

Vous avez des idées ?
 

Dranreb

XLDnaute Barbatruc
Re : Carte de France - Couleur département + couleur texte

En enregistrement d'une nouvelle macro puis modifier la couleur du texte d'un Shape, ça donne quoi ?
C'est vrai qu'avec les Select engendrés sur ce genre d'objet on ne sait plus toujours très bien à quoi s'appliquent les propriétés...
.TextFrame.Characters.Font.Color parait cohérent quoique bien compliqué. Je me demande si vous ne feriez pas mieux de travailler avec des contrôles Label
Je me demande aussi par ailleurs si vous ne seriez pas intéressé par les calculs de couleurs effectué dans ma petite appli.
À+
 

apnart

XLDnaute Occasionnel
Re : Carte de France - Couleur département + couleur texte

Merci pour voter réponse.

Pour ce qui est de l'enregistrement macro, ça donne rien pour les manips faites sur des objet... j'avais déjà essayé.

J'ai également essayé avec votre syntaxe, mais je dois être benêt sur ce coup là...

J'ai fait :
Code:
    For Each DeptTexte In Feuil4.Range("B3:B5")
        ActiveSheet.Shapes(DeptTexte.Value).Select
            RGBx = DeptTexte.Offset(0, 9).Value
            RGBy = DeptTexte.Offset(0, 10).Value
            RGBz = DeptTexte.Offset(0, 11).Value
        Selection.TextFrame.Characters.Font.Color.RGB = RGB(RGBx, RGBy, RGBz)
    Next DeptTexte

mais ça m'injurie :mad:
 

apnart

XLDnaute Occasionnel
Re : Carte de France - Couleur département + couleur texte

POur ce qui est des calculs de couleurs, j'ai une fonction qui me fait ça pas trop mal dans les tableaux, je ne pense pas en avoir besoin, mais merci quand même ;-)
 

apnart

XLDnaute Occasionnel
Re : Carte de France - Couleur département + couleur texte

J'ajoute à propos des labels, qu'effectivement, tous les départements comme mes boites texte son nommées (pour le texte je fais 1 test sur uniquement 3 départements)
 

Dranreb

XLDnaute Barbatruc
Re : Carte de France - Couleur département + couleur texte

Possible qu'en sélectionnant un Shape contenant du texte, ce soit déja son TextFrame qui se retrouve selectionné en fait, lequel n'a pas d'autre propriété TextFrame. Donc:
Selection.Characters.Font.Color ou bien
MonShape.TextFrame.Characters.Font.Color
Bonne soirée.
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 343
Membres
111 108
dernier inscrit
Elias30