Aide - Carte monde

JuJu77

XLDnaute Nouveau
Bonjour,

J'ai pu voir des cartes de France mais aucun sujet sur une carte du monde...
Je suis simplement très nul en macro, et voudrais de l'aide pour que suite à une série de données, la carte du monde se colorie en fonction des données (colonne O onglet données / ligne pays), et (si possible) quand on passe la souris sur le pays la donnée apparaît... Je ne sais pas du tout si c'est possible, et c'est pourquoi j'aurais besoin de votre aide... Merci !

(Je n'arrive pas à zipper le fichier... :( il fait 166Ko... Quelqu'un aurait une solution svppp? Vraiment désolé...)
 

mromain

XLDnaute Barbatruc
Re : Aide - Carte monde

bonsoir à tous,

Voici le code modifié à mettre "sur la feuille carte du monde" (clic droit sur l'onglet > visualiser le code > puis coller le code suivant).
Code:
Private Sub Worksheet_Activate()
Dim FeuilCarte As Worksheet, feuilData As Worksheet, FeuilParam As Worksheet
Dim iData As Integer, nomPays As String, valeurPays As Double, nomForme As String
Dim iCouleur As Long, cellFind As Range, nbLignes As Long
    Set FeuilCarte = ActiveSheet
    Set feuilData = ThisWorkbook.Sheets("2010 Country Stat.")
    Set FeuilParam = ThisWorkbook.Sheets("Liste pays forme")
    
    'calculer la dernière ligne saisie dans la feuille de données (sans compter la dernière ligne de total)
    nbLignes = feuilData.Range("A" & feuilData.Rows.Count).End(xlUp).Row
    
    'boucler sur toutes les lignes de la feuille de données
    For iData = 2 To nbLignes
    
        'récupérer le nom du pays et sa valeur
        nomPays = feuilData.Range("A" & iData).Text
        valeurPays = feuilData.Range("O" & iData).Value * 100
        
        'rechercher ce pays dans la colonne A de la feuille "Liste Pays-Forme"
        Set cellFind = FeuilParam.Range("A:A").Find(nomPays, , xlValues, xlWhole)
        
        'si on a trouvé le pays
        If Not cellFind Is Nothing Then
        
            'récupérer le nom de la forme associée au pays
            nomForme = cellFind.Offset(0, 1).Text
            
            'si un nom de forme est bien associé
            If nomForme <> "" Then
            
                'boucler sur toutes les lignes "code couleur"
                For iCouleur = 2 To FeuilParam.Range("E" & FeuilParam.Rows.Count).End(xlUp).Row
                    
                    'si on est sur la ligne correspondante à la valeur du pays
                    If (FeuilParam.Range("E" & iCouleur) < valeurPays) And (FeuilParam.Range("F" & iCouleur) >= valeurPays) Then
                        
                        'colorier la forme du pays à la couleur associée
                        FeuilCarte.Shapes(nomForme).Fill.ForeColor.RGB = FeuilParam.Range("G" & iCouleur).Interior.Color
                    End If
                Next iCouleur
            End If
        End If
    Next iData
End Sub
Ce code s'exécutera à chaque fois que tu sélectionnera l'onglet.

Par contre, pour qu'il fonctionne sans erreur, il faut faire attention à écrire exactement (même la casse) le nom des formes associées aux pays.

Tous tes noms de formes sont du type "FreeFormXXX", alors que le nom exact des formes est "Freeform XXX" (avec le 2° f en minuscule et un espace).
Un simple "Remplacer" dans Excel te permettra de modifier tous ces noms (avec les options "respecter la casse" cochée et "totalité du contenu de la cellule" décochée)
Attention, il y a également une forme nommée "FreeFromXXX" qui ne sera pas remplacée par excel.

Une fois ces modifications apportées, la macro devrai s'exécuter sans bugs à chaque fois que tu sélectionnera l'onglet de la carte du monde.

a+
 

JuJu77

XLDnaute Nouveau
Re : Aide - Carte monde

Merci beaucoup c'est super sympa !!!

Si je peux encore demander, et j'espère ne pasabuser, sur la carte, j'essaie de modifier les points parce que certains pays n'apparaissent pas, mais à chaque fois ça ne marche pas... Y'aurait-il une méthode pour modifier les tracés et/ou en rajouter?

Merciiii !
 

JuJu77

XLDnaute Nouveau
Re : Aide - Carte monde

Merci beaucoup c'est super sympa !!!

Si je peux encore demander, et j'espère ne pasabuser, sur la carte, j'essaie de modifier les points parce que certains pays n'apparaissent pas, mais à chaque fois ça ne marche pas... Y'aurait-il une méthode pour modifier les tracés et/ou en rajouter?

Merciiii !

C'est bon j'ai pu résoudre mon problème en insistant :) Merci Romain pour ta précieuse aide !
 

decisal

XLDnaute Nouveau
Re : Aide - Carte monde

Le plus simple est de récupérer une carte au format WMF (ClipArt) sur d-maps.com : free blank maps, free outline maps

puis d'installer l'addon gratuit BeGraphic (servant à faire tous les types de graphiques avancés, dont les cartes choroplèthes) sur What is it | begraphic.com

Le tutoriel est ici
Create custom map add-in excel and powerpoint | begraphic.com
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 259
Membres
103 167
dernier inscrit
miriame