Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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

Dernière édition:
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
 
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
 

Pièces jointes

Dernière édition:
bonjour,

je reprends ce post un peux ancien ...
néanmoins, je ne comprends pas comment ca fonctionne ( suis sous excel 2007)


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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…