Colorier une image en fonction de la valeur d'une cellule

Bonjour à tous, je suis étudiant en école de commerce et actuellement en alternance. Pour les besoins de mon travail, je dois créer une carte de France divisée en départements, et de colorier chaque département en fonction de valeur définies. Malheureusement, je suis contraint par les lacunes d'Excel 2013 :(

Je dispose d'un fichier de départ gracieusement offert par un utilisateur du site que je remercie. Il s'agit de la forme parfaite que j'aimerais donner à mon fichier. Sur le fond, la liste des départements resterait la même mais la colonne "Npm" devrait contenir des valeurs monétaires.

fichier de depart

Comment pouvez-vous m'aider :

Il faudrait que les départements se colorent en fonction de fourchettes des valeurs monétaires (exemple ci-dessous). Par exemple, appliquer un bleu clair pour les valeurs comprises entre 0 et 200€, un bleu plus foncé pour des valeurs entre 200 et 500 etc...

exemple de rendu

Ce serait vraiment génial si quelqu'un arrivait à m'orienter sur ce genre de rendu. Je vous remercie de l'attention que vous porterez à ma demande et vous souhaite une excellente journée.

Bonjour,

je peux colorier comme vous le souhaiter en fonction de critères à définir

mais il vous faut faire à partir de la carte des départements insérer dans une feuille excel, faire le contour de chaque département avec l'outil "à main levée", nommer ces objets du nom du département

et mettre le même nom dans la colonne 1 et la valeur dans la colonne 2

voir exemple ci-joint

si vous fait ce travail la programmation est simple, je pourrai vous la faire

912departement.xlsm (61.89 Ko)

Wouah merci pour votre aide précieuse !

Et votre tutoriel est super bien fait. Je m'y attelle dès maintenant et vous fais signe quand j'aurais terminé.

Cordialement,

Mathieu

Je viens de terminer la nomination de chaque département sur chaque forme libre du document comme indiqué dans votre tutoriel.

Quelle est la prochaine étape ?

Mathieu

Bonjour Mathieu69, le Forum,

Voici pour exemple une carte de France déjà réalisée pour ton besoin.

Il s'en trouve d'ailleurs sur ce site d'autres modèles tout aussi valable. Faire Carte de France dans la zone Rechercher en haut/milieu de la page.

Bonjour X Cellus,

Je vous remercie pour votre aide et votre document. Néanmoins, ce dernier comporte des spécificités qui ne fonctionnent pas avec mes données monétaires.

J'apprécierais grandement qu'une personne m'apporte une aide personnalisée car je suis dépourvu de toute connaissance liée au VBA.

Cordialement,

Mathieu

A nouveau,

ce dernier comporte des spécificités qui ne fonctionnent pas avec mes données monétaires.

J'ai inscris des valeurs monétaires, fait le RAZ de la carte (bouton Effacer) puis clic sur le bouton Colorier.

a00dpt

Et aucun souci. Change en colonne H les valeurs de bornage et/ou agrandis ou réduit ce tableau colonne H selon ton besoin.

La colonne E contient la formule (Equiv) permettant de ressortir l'index (1 à 7) du bornage. Voir sur ce site (Fonctions Excel) son utilisation.

La macro pour colorier est celle ci-dessous. (code dans la feuil5 -> Carte)

Private Sub CommandButton1_Click()
'Sept couleurs présentes (cellules I3 à I9) qui contiennent le n° de couleur attribuable selon bornage de la colonne H
Dim Kolor(7)
For i = 1 To 7
Kolor(i) = Sheets("Départements").Cells(i + 2, 9)
Next i
'Attribution des couleurs à la forme(Shape) du département cible (par ligne) et selon la valeur de la colonne E (5ième colonne)
'Départements 1 à 19
For n = 1 To 19 'ActiveSheet.Shapes.Count - 2
  ActiveSheet.Shapes("Dpt" & n).Select
  Selection.ShapeRange.Fill.ForeColor.RGB = Kolor(Sheets("Départements").Cells(n + 2, 5))
Next n
'Départements Corse
For c = 1 To 2
ActiveSheet.Shapes("Dpt20" & Chr(64 + c)).Select
Selection.ShapeRange.Fill.ForeColor.RGB = Kolor(Sheets("Départements").Cells(21 + c, 5))
Next c
'Départements 21 à 95
For m = 21 To 95
ActiveSheet.Shapes("Dpt" & m).Select
Selection.ShapeRange.Fill.ForeColor.RGB = Kolor(Sheets("Départements").Cells(m + 3, 5))
Next m
ComboBox1.Text = ""
[A1].Select
End Sub

Tandis que la macro pour effacer est

Sub oter_couleur()
'ActiveSheet.Shapes.SelectAll -> Sélection des formes départements de la carte
For n = 1 To ActiveSheet.Shapes.Count - 3
ActiveSheet.Shapes(n).Select
'Remise en blanc par chiffre 9. On pourrait mettre en bleu ciel par chiffre 7, vieux rose par 6, jaune par 5 etc...
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 9
Next n
End Sub

Bonjour X Cellus,

Là, ça me parle un peu plus

Je te remercie pour ces précisions et te souhaite une bonne après-midi.

X Cellus,

Que signifie "Dpt" dans votre code VBA ? A quoi renvoie ce terme svp ?

Cordialement,

Mathieu

A nouveau,

Toutes les formes représentant les départements commencent par "Dpt" et leur numéro afin de pouvoir les cibler et les différencier.

Comme ci-dessous. On accède à la forme des départements qui vont du N° 1 (Ain) au N° 19 (Corrèze)

'Départements 1 à 19
For n = 1 To 19 
  ActiveSheet.Shapes("Dpt" & n).Select

Pour la Corse il existe 2 zones, on les distingue par A et B donc Dpt20A et Dpt20B. Le Chr(64 + c) donnera A quand c=1 et B quand c=2

'Départements Corse
For c = 1 To 2
ActiveSheet.Shapes("Dpt20" & Chr(64 + c)).Select

Et on revient au principe de la 1ière macro pour les départements 21 à 95

'Départements 21 à 95
For m = 21 To 95
ActiveSheet.Shapes("Dpt" & m).Select

Pour voir le nom de ses formes on clique sur un des départements au hasard.

Et en laissant ce département en sélection on clique sur le menu général sur Format de forme.

Ensuite en cliquant sur Volet Sélection apparait dans une fenêtre toutes les formes présentes dans la feuille. Clic sur la x pour fermer.

Super, merci pour ces précisions.

Toutefois, en essayant d'importer ma propre carte de France et en renommant toutes les formes (départements) en "Dpt", elle ne se colorie pas. Excel m'indique une erreur dans le code.

Bref, ce VBA est décidément très compliqué à cerner et je pense rester sur le document initial en important mes propres données.

Je vous remercie pour toutes vos aides respectives et vous souhaite une bonne journée.

Cordialement,

Mathieu

Rechercher des sujets similaires à "colorier image fonction valeur"