Macro colorier carte

Bonjour,

Je souhaite colorier une carte automatiquement en fonction d'un jeu de données.

J'ai simplifié mon fichier pour le rendre partageable, mais en gros il y aura d'autres onglets qui rempliront la colonne E.

Je voudrais que la carte se mette à jour (idéalement via un bouton) quand les données évoluent.

Je crois tenir un début à l'aide de plusieurs autres topics, mais j'ai maintenant une Erreur d'objet '424' que je ne comprends pas..

Si quelqu'un pouvait m'aider, cette personne aurait ma gratitude éternelle !!

Excellente journée, et bon courage à ceux qui se pencheront sur mon problème

Thomas

177carte-a-colorer.xlsm (245.58 Ko)

Bonsoir,

Bien que ton onglet se nomme "Map", tu ne peux pas la désigner comme "Objet"

C'est soit "Sheets("Map")", soit par le CodeName "Feuil3"

Donc, modifie ainsi :

If UBound(SP) = 2 Then Feuil3.Shapes(Rg.Value).Fill.ForeColor.RGB = RGB(SP(0), SP(1), SP(2))

ou comme ceci :

If UBound(SP) = 2 Then Sheets("Map").Shapes(Rg.Value).Fill.ForeColor.RGB = RGB(SP(0), SP(1), SP(2))

Pour remplacer :

If UBound(SP) = 2 Then Map.Shapes(Rg.Value).Fill.ForeColor.RGB = RGB(SP(0), SP(1), SP(2))

qui te provoquait cette erreur "424"

PS, un merci suffira, nul besoin d'une reconnaissance jusqu'à la fin de ta mort....

Bonne soirée

Edit,

Et j'oubliais....

Tu peux utiliser Map comme objet, mais faut le définir auparavant...

Like this :

Sub Regions()
Dim Map As Worksheet
Dim Rg As Range
Set Map = Sheets("Map")
For Each Rg In [Codes_Map]
    SP = Split(Application.VLookup(Rg.Offset(, 1).Value, [Colors], 2))
    If UBound(SP) = 2 Then Map.Shapes(Rg.Value).Fill.ForeColor.RGB = RGB(SP(0), SP(1), SP(2))
Next
End Sub

Bonne soirée

Magnifique, merci beaucoup !! J'essaie tout à l'heure et je te tiens au courant !!

Je viens d'essayer, tout est OK. Merci infiniment pour ton aide (j'insiste.. ).

Je joins donc pour ceux que ça intéresse une carte du Royaume-Uni coloriable, ça peut toujours servir!

227carte-a-colorer.xlsm (249.13 Ko)
Rechercher des sujets similaires à "macro colorier carte"