Réaliser une carte de la france à partir d'un tableau excel

marin

XLDnaute Nouveau
Bonjour à tous,

Je dois réaliser à partir de ma donnee source une carte de la france.

je vous joins le fichier avec ma donnée source. Je souhaite mettre sur une carte de France des ronds ou barres proportionnelles avec la somme du chiffre d'affaire hors taxe correspondant à chaque département.

est-il possible de le faire sous excel 2010? comment puis-je le réaliser?

Merci d'avance pour vos réponses

Marine
 

Pièces jointes

  • test carte géo france.xlsx
    11.1 KB · Affichages: 3 854

PBO229

XLDnaute Nouveau
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonjour à tous,
Pauvre Tatiak, cela doit te faire quelque chose de voir ton code malmené de la sorte.
La partie pour colorer les départements marche niquel.
Ce que je veux faire c'est colorer région par région selon la moyenne des valeurs des départements qui la composent.
J'ai donc repris ta procédure pour dessiner la carte de France (car c'était elle qui colorait, il me semble, les régions en nuances de gris) et j'ai essayé de faire ce que je voulais à partir de ça.
La procédure dessin_pref marche bien, elle dessine les préfectures régionales selon la moyenne de la région.
 

PBO229

XLDnaute Nouveau
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonjour à tous,
Est-il possible d'ajouter à la carte les Dom-Tom?
Tatiak, je veux bien m'en occuper mais quelques explications/pistes me seraient bien utiles :)
Bonne journée
 

PBO229

XLDnaute Nouveau
Re : Réaliser une carte de la france à partir d'un tableau excel

Ok merci, je comprends mieux comment marche la macro
Un peu compliqué pour les DOM-TOM alors.
Un agrandissement de l'île de France doit être assez simple par contre.
Est-ce que changer les multiplicateurs ici, dans la sub dessin peut marcher?
Code:
                longitude(nbpoint) = (longitude0 + CDbl(Replace(Mid(tablo(i), 1, virgule - 1), ".", Sepa))) * 46.2 '710
                latitude(nbpoint) = (latitude0 - CDbl(Replace(Mid(tablo(i), virgule + 1, fin - virgule - 1), ".", Sepa))) * 66
 

PBO229

XLDnaute Nouveau
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonjour à tous,

Est-ce qu'il existe une méthode pour enregistrer la carte au format image?
Quand je sélectionne les cellules pour faire un collage spécial il n'y a que le fond de carte (sans les cercles) qui apparait.

Merci à vous
 

david84

XLDnaute Barbatruc
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonjour Pierre,

j'ai regardé ton fichier très sympa du message #50.

Ci-joint une petite contribution : plutôt que de cliquer sur le shape du département pour afficher son nom il peut être préférable d'avoir cette information au survol de la souris sur le shape.

Pour cela tu peux créer dans la Sub dessin_carte des Hyperliens associés aux shapes lors de leur création.
L'astuce consiste à utiliser l'argument ScreenTip de la propriété HyperLinks pour afficher cette information.
De plus tu peux également en cliquant dessus afficher le département dans Google Map :
Code:
       With Sheets("Carte").Shapes.BuildFreeform(msoEditingAuto, longitude(1), latitude(1))            
            For i = 2 To nbpoint
                .AddNodes msoSegmentLine, msoEditingAuto, longitude(i), latitude(i)
            Next i

            .AddNodes msoSegmentLine, msoEditingAuto, longitude(1), latitude(1)
            .ConvertToShape.Select
            Selection.Name = ville
            Selection.ShapeRange.Fill.ForeColor.RGB = couleur(indexcouleur)
            
            'création du lien hypertext permettant :
            '- l'affichage du nom du département au survol de la souris (+ la région pour l'exemple)
            '- l'affichage du département dans Google Map lorsque l'on clique dessus
            .Application.ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), _
            Address:="https://www.google.fr/maps/place/" & ville, _
            ScreenTip:=ville & vbCrLf & Sheets("Data").Cells(j, 4)
            
            'OnAction devient inopérant si l'on utilise un Hyperlien
            'Selection.OnAction = "USF"
        End With

Un bémol toutefois : la propriété OnAction devient alors inopérante : il faut donc choisir entre les 2 possibilités (ou alors peut-être remplacer dans l'argument "Address" de Hyperlinks le lien vers Google Maps par un lien vers un fichier vbscript qui lancerait une procédure similaire à celle placée dans "USF" mais c'est juste une idée car je n'ai pas testé et donc je ne sais pas si c'est jouable).

Enfin bon c'est juste une idée en passant...

A+
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonjour,

Qu'en penses-tu?
Super idée !

Fais attention cependant car dans le Worksheet_SelectionChange la variable derlig pointe sur la feuille "Dept".
Or comme celle-ci a moins de lignes que la feuille Data cela ne fonctionne pas lorsque tu cliques sur certains départements placés après la ligne 97 de la feuille Data (Vendée ou Bouches du Rhône par exemple).

Je pense qu'en pointant cette variable sur la feuille Data cela fonctionne (à vérifier de ton côté):
Code:
derlig = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
A+
 
C

Compte Supprimé 979

Guest
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonjour le fil,

Un petit passage, juste pour féliciter l'ami Tatiak pour ce superbe travail ;)
liorem_10_10.gif
 

Pièces jointes

  • liorem_10_10.gif
    liorem_10_10.gif
    579 bytes · Affichages: 186
  • liorem_10_10.gif
    liorem_10_10.gif
    579 bytes · Affichages: 181

david84

XLDnaute Barbatruc
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonjour à tous,

J'ai testé le France_Clients4(3) :
La couleur ne s'affiche lors du clic sur certains départements comme la Marne , la Haute Marne, la Meuse, etc.
Le fait de rajouter un 2ème
Code:
Range("A1").Select
juste après
Code:
 If Not Intersect(Target, Range("A2:A" & derlig)) Is Nothing And Target.Count = 1 Then
semble régler le problème.

Veiller à ce que toute la carte soit visible sinon lorsque l'on clique sur la Corse on ne la voit plus.

Il faudra peut-être veiller dans la version finale à cacher la colonne A car sinon cela déclenche la procédure événementielle en cliquant dedans et cela plante lorsque la carte est effacée et que l'on clique dedans.
A+
 

Efgé

XLDnaute Barbatruc
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonjour à tous :)

Bravo Tatiak :)

Juste une petite modif
Si l'on est sur l'onglet "Carte" et que l'on selectionne tout (Ctrl+A), il y a plantage (sous 2007 en tous cas).
Pour éviter cela il faut remplacer tous les Target.Count par Target.CountLarge.

Cordialement
 

david84

XLDnaute Barbatruc
Re : Réaliser une carte de la france à partir d'un tableau excel

Bonsoir Pierre,

j'ai testé vite fait et je trouve que c'est moins performant en l'état que le fait de passer par les hyperliens.

En plus j'ai un bug lorsque je clique dans le label100 à cette ligne
Code:
lig = Application.Match(Depart, Sheets("Dept").Columns(2), 0)
alors que la carte n'est pas encore affichée ou qu'elle l'est mais que je clique en dehors.

J'ai également un message de requête SQL non aboutie qui apparaît à certains moment et suite à cela il ne me reste plus qu'à fermer le fichier.

Tout cela peut bien sûr être amélioré mais juste pour comprendre : quel intérêt vois-tu à passer par ce procédé plutôt que par des hyperliens ? Qu'obtiendrais-tu au bout du compte de plus que tu ne puisses obtenir avec des hyperliens ?

A+
 

Discussions similaires

Réponses
29
Affichages
1 K

Statistiques des forums

Discussions
311 720
Messages
2 081 902
Membres
101 834
dernier inscrit
Jeremy06510