Carte de france dynamique en VBA

Bonjour à tous,

Je souhaite créer une carte dynamique de la france avec ses département, le fichier image étant en svg.
J'ai insérer le fichier sur une feuille à part ("Carte Départements"), j'ai donné comme nom de la forme, le numéro du département, sur une deuxième feuilles ("Données"), je stocke mes données, et sur une troisième ("Couleurs") qui contient un nuancier sous forme de tableau avec les valeurs limites pour chacune des couleurs.

Le but étant, à l'aide de mon code VBA, l'ordinateur compare la valeur de mon tableau de données pour chaque département avec le nuancier et attribut la couleur correspondante à la forme.

je vous joint ci-dessous mon code VBA ( soyez clément c'est la première fois que j'en fais ;) ).

Sub coloration_carte_départements()

Dim variation_licenciés As Integer
Dim numéro_Département As String

Dim col As Long
Dim Blue As Byte
Dim Green As Byte
Dim Red As Byte

For n = 2 To 91
numéro_Département = Sheets("Données").Range("B" & n).Value
variation_licenciés_temp = Sheets("Données").Range("D" & n).Value
variation_licenciés = Format(variation_licenciés_temp, "###0;-##0")

If variation_licenciés >= Sheets("Couleurs").Range("B3") And variation_licenciés < Sheets("Couleurs").Range("A3") Then
col = Sheets("Couleurs").Range("A3").Interior.Color

ElseIf variation_licenciés >= Sheets("Couleurs").Range("B4") And variation_licenciés < Sheets("Couleurs").Range("A4") Then
col = Sheets("Couleurs").Range("A4").Interior.Color

ElseIf variation_licenciés >= Sheets("Couleurs").Range("B5") And variation_licenciés < Sheets("Couleurs").Range("A5") Then
col = Sheets("Couleurs").Range("A5").Interior.Color

ElseIf variation_licenciés >= Sheets("Couleurs").Range("B6") And variation_licenciés < Sheets("Couleurs").Range("A6") Then
col = Sheets("Couleurs").Range("A6").Interior.Color

ElseIf variation_licenciés >= Sheets("Couleurs").Range("B7") And variation_licenciés < Sheets("Couleurs").Range("A7") Then
col = Sheets("Couleurs").Range("A7").Interior.Color

ElseIf variation_licenciés < Sheets("Couleurs").Range("A8") Then
col = Sheets("Couleurs").Range("A8").Interior.Color

Else: col = Sheets("Couleurs").Range("A9").Interior.Color

Red = Int(col Mod 256)
Green = Int((col Mod 65536) / 256)
Blue = Int(col / 65536)

Sheets("Carte Départements").Shapes(numéro_Département).Fill.ForeColor = RGB(Red, Green, Blue)

End If
Next n

End Sub

en suite je sélectionne toutes mes formes et je fais "affecter macro" , sur l'interface VBA je fais "play" mais rien ne se passe.

Merci d'avance pour vos conseils/ corrections

Bonjour,

Le spécialiste des cartes c'est Tatiak (pierrep56).

Pas besoin de ré-inventer la poudre, il y a tout sur son site : Tatiak

ok merci je connaissais pas, je vais allez voir ça

Rechercher des sujets similaires à "carte france dynamique vba"