Créer carte Europe afficher bar d'histogramme et colorier chaque pays

bast0504

XLDnaute Occasionnel
Bonjour à tous,

je souhaite créer une carte de l'Europe dans laquelle j'intégrerais les bars d’histogramme de mon histogramme sur chaque pays, les pourcentages d'évolution et si possible donner une couleur au pays

Ou pourrais je trouver une carte adaptée ?

Merci
 

Pièces jointes

  • Vente Europe.xlsx
    11.4 KB · Affichages: 214
  • Vente Europe.xlsx
    11.4 KB · Affichages: 231
  • Vente Europe.xlsx
    11.4 KB · Affichages: 251

bast0504

XLDnaute Occasionnel
Re : Créer carte Europe afficher bar d'histogramme et colorier chaque pays

Bonsoir Forum.

Merci Gilbert pour ton retour.

Grâce à toi j'ai trouvé la carte de l’Europe que je cherche. En revanche comment intégré de manière automatique chaque bar de mon histogramme sur les pays de la carte ? Chose pas simple j'en convient.

Merci pour votre aide
 

Pièces jointes

  • Vente Europe.xlsx
    165.5 KB · Affichages: 144
  • Vente Europe.xlsx
    165.5 KB · Affichages: 161
  • Vente Europe.xlsx
    165.5 KB · Affichages: 166

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Créer carte Europe afficher bar d'histogramme et colorier chaque pays

Bonsoir bast0504, gilbert_RGI, le forum,

(...) Grâce à toi j'ai trouvé la carte de l’Europe que je cherche. En revanche comment intégré de manière automatique chaque bar de mon histogramme sur les pays de la carte ? Chose pas simple j'en convient. (...)

Sur ce site ( Ce lien n'existe plus ), on peut trouver des fonds de carte sous le format .xlsx qui permettent d'y inscrire des données.

Ces cartes ont l'avantage d'avoir pour chaque forme un nom unique repris dans un tableau de données.

Pour faire apparaître une valeur sur une forme:
  • sélectionner cette forme
  • se placer dans la barre de formule (vérifier que la forme est bien toujours sélectionnée)
  • repérer dans le tableau des données, la cellule où se trouve le nom de la forme (ex A19 pour la France)
  • saisir dans la barre de formule, la formule = $B$19
  • valider la formule
  • la forme affiche la valeur en $B$19
  • on pourrait éventuellement automatiser ces actions par macro


Un exemple de carte d'Europe Ce lien n'existe plus

Un exemple de lien entre données et formes dans le fichier joint (j'ai supprimé des pays pour réduire la taille du fichier qui dépassait la taille autorisée sur XLD)

nota 1: il faut quelques fois:
  • cliquer une ou deux fois sur un pays pour le sélectionner (vérifier son nom dans la barre des noms à gauche de la barre des formules)
  • amener une forme au premier plan pour rendre son texte visible (cliquer droit sur la forme pour afficher le menu)
  • positionner le texte d'une forme en haut ou en bas pour le rendre visible (cliquer droit sur la forme pour afficher le menu)

nota 2: Avec cette méthode rien n'empêche de renommer les noms des pays (ce qui ne serait sans doute pas aussi trivial avec une macro)
 

Pièces jointes

  • Exemple EUROPE_ETATS v1.xlsx
    484.5 KB · Affichages: 302
Dernière édition:

bast0504

XLDnaute Occasionnel
Re : Créer carte Europe afficher bar d'histogramme et colorier chaque pays

Merci Mapomme pour ta réponse très instructive

Comment pourrais-t-on faire figurer sur chaque pays une barre d'histogramme qui représenterait un niveau de vente. L'idée serait en mettant à jour un tableau de données des ventes les bars s'ajusteraient à la hausse comme à la baisse

Je cherche à faire quelque chose qui se rapprocherait de la 1e carte (carte bleue) de la partie "France codes postaux / Région" du lien qui tu as proposé

Ce lien n'existe plus

Merci
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Créer carte Europe afficher bar d'histogramme et colorier chaque pays

Bonjour bast0504

(...) Comment pourrais-t-on faire figurer sur chaque pays une barre d'histogramme qui représenterait un niveau de vente. L'idée serait en mettant à jour un tableau de données des ventes les bars s'ajusteraient à la hausse comme à la baisse (...)

Comme je dois partir, un exemple fait en vitesse. Quelques pays seulement ont été pris en exemple. On peut changer leurs valeurs pour voir les modifications sur la carte. Ne pas effacer les barres en colonne Q, ni les formules en colonne S.

Le code:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xcell As Range
If Intersect(Target, Range("b2:b57")) Is Nothing Then Exit Sub

For Each xcell In Range("b2:b57")
If Existe(xcell.Offset(, -1)) Then
  If xcell >= 0 Then
    With ActiveSheet.Shapes(xcell.Offset(, -1).Value & "P")
      .Visible = True
      .Height = HP * xcell.Value / Range("s4")
      .Top = ActiveSheet.Shapes(xcell.Offset(, -1).Value & "N").Top - .Height
    End With
    ActiveSheet.Shapes(xcell.Offset(, -1).Value & "N").Visible = False
  Else
    With ActiveSheet.Shapes(xcell.Offset(, -1).Value & "N")
      .Visible = True
      .Height = -HN * xcell.Value / Range("s8")
    End With
    ActiveSheet.Shapes(xcell.Offset(, -1).Value & "P").Visible = False
  End If
End If
Next xcell
End Sub

Function Existe(x As Range) As Boolean
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
  If shp.Name = x.Value & "P" Then
    Existe = True
    Exit Function
  End If
Next shp
End Function

Public Function HP()
  HP = Sheets("EUROPE").Shapes("CylP").Height
End Function
Function HN()
  HN = Sheets("EUROPE").Shapes("CylN").Height
End Function
 

Pièces jointes

  • Exemple EUROPE_ETATS barre v1.xlsm
    498.7 KB · Affichages: 254
Dernière édition:

thireg

XLDnaute Junior
bonjour,

je reprends ce post un peux ancien ...
néanmoins, je ne comprends pas comment ca fonctionne ( suis sous excel 2007)
Re : Créer carte Europe afficher bar d'histogramme et colorier chaque pays

Bonjour bast0504



Comme je dois partir, un exemple fait en vitesse. Quelques pays seulement ont été pris en exemple. On peut changer leurs valeurs pour voir les modifications sur la carte. Ne pas effacer les barres en colonne Q, ni les formules en colonne S.

Le code:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xcell As Range
If Intersect(Target, Range("b2:b57")) Is Nothing Then Exit Sub

For Each xcell In Range("b2:b57")
If Existe(xcell.Offset(, -1)) Then
  If xcell >= 0 Then
    With ActiveSheet.Shapes(xcell.Offset(, -1).Value & "P")
      .Visible = True
      .Height = HP * xcell.Value / Range("s4")
      .Top = ActiveSheet.Shapes(xcell.Offset(, -1).Value & "N").Top - .Height
    End With
    ActiveSheet.Shapes(xcell.Offset(, -1).Value & "N").Visible = False
  Else
    With ActiveSheet.Shapes(xcell.Offset(, -1).Value & "N")
      .Visible = True
      .Height = -HN * xcell.Value / Range("s8")
    End With
    ActiveSheet.Shapes(xcell.Offset(, -1).Value & "P").Visible = False
  End If
End If
Next xcell
End Sub

Function Existe(x As Range) As Boolean
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
  If shp.Name = x.Value & "P" Then
    Existe = True
    Exit Function
  End If
Next shp
End Function

Public Function HP()
  HP = Sheets("EUROPE").Shapes("CylP").Height
End Function
Function HN()
  HN = Sheets("EUROPE").Shapes("CylN").Height
End Function


bonjour mapomme,

je reprends ce sujet un peu ancien :)
je suis sous excel 2007
je ne comprend pas comment ton fichier fonctionne ?
en fait comment faut-il faire pour placer des histo sur chaque pays, et actionner ?

merci
 

Statistiques des forums

Discussions
312 252
Messages
2 086 631
Membres
103 283
dernier inscrit
SabSab