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 Suben 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