Microsoft 365 Carte choroplèthe: communes Ille-et-Vilaine

Staple1600

XLDnaute Barbatruc
Bonjour,

[CONTEXTE]
J'ai essayé à partir de ce jeu données : lien vers données (Open Data)
de créer une carte choroplèthe avec O365.
J'obtiens un résultat mitigé

carte35.png
J'ai regardé dans les archives du forum et je n'ai pas retrouvé d'exemples VBA créé par tatiak (largement plus abouti que ce que propose Microsoft)
J'ai aussi consulté son blog.

De ce que j'ai lu sur le web, on ne peut pas afficher les villes avec l'outil de Microsoft.

[QUESTION]
Qui parmi vous pour m'aider à faire une carte digne de ce nom ?
  • a) soit avec l'outil de Microsoft
  • b) soit en VBA .

NB: Dans l'idéal, je souhaiterais faire apparaitre le nom des communes
 

p56

XLDnaute Occasionnel
Bonjour Staple! Salut Bruno,

Dans mes archives j'ai cette ancienne carte du 35 avec zoom, affichage du nom de la commune au clic et liste des données à droite (AB:AF).
Ici chaque shape est nommée par son nom avec un point comme préfixe par ex .SAINT-MALO

Depuis j'ai changé de méthode pour dessiner des cartes. Si besoin je pourrai fournir une carte "nouvelle méthode", mais le résultat sera quasi identique

Bonne utilisation
P56 (ancien pseudo=tatiak)
 

Pièces jointes

  • ILLE-ET-VILAINE.xlsm
    149.5 KB · Affichages: 13

Staple1600

XLDnaute Barbatruc
Bonjour @p56

Merci pour ta carte.

Quand tu parles de nouvelle méthode, tu parles d'utiliser JSON ?
Ou ces drôles de bestioles : Geo Shape?

PS: Avec cette liste
Je passe de 333 communes à 574

Et dans ton fichier, VBA m'indique : 358 shapes
 

p56

XLDnaute Occasionnel
Alors oui je préfère lire le json et en effet en exploitant les geoshapes.
Mais c'est la méthode de dessin que j'ai améliorée depuis cet ancien fichier du 35. Méthode que j'appelle "Méthode des distances" (il faudrait que je la facture aussi 12€ celle-ci!😁)

Ceci dit dans la liste que tu indiques plus haut, il y a de nombreux doublons dus aux différents CP pour un même INSEE, ainsi Cesson-Sévigné donne 11 lignes, Vitré 8, etc ...
une fois les doublons supprimés, il reste 333 lignes de communes distinctes.

Dans mon vieux fichier, certaines communes n'étaient probablement pas encore fusionnées d'ou les 355 shapes => mais encore là attention certaines communes peuvent potentiellement comporter plusieurs shapes (Iffendic ou Tresboeuf par ex) puisque physiquement plus ou moins disjointes. Bref c'est pas simple

Ceci dit, en re-dessinant la carte avec la liste que tu indiques, le dessin comporte aussi 355 shapes.

Pour finir est-ce que ma "vieille carte" convient à ton besoin?
P56

Edit : ajout d'une pj une autre version du 35, plus détaillée (avec les îles)
 

Pièces jointes

  • Ille-et-Vilaine.zip
    904.7 KB · Affichages: 9
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@p56
Ta carte (et son principe de fonctionnement) a retenu mon suffrage ;)
La preuve, je me suis permis ceci
Code:
Sub Clic(Optional x As Byte)
Call RAZ_Shapes
    With Sheets("Carte").Shapes(Application.Caller)
    .Fill.ForeColor.RGB = RGB(255, 0, 0)
    [A3] = .AlternativeText & " | " & .Title
    End With
End Sub
Sub RAZ_Shapes()
Dim Sh As Shape
With Sheets("Carte")
    For Each Sh In .Shapes
        If Left(Sh.Name, 1) = "." Then
            Sh.Fill.ForeColor.RGB = 13434862
        End If
        Next Sh
End With
End Sub

Par contre, tes shapes sont déjà dessinées (et les communes inscrites en dur dans AlternativeText)

Je cherche à faire un mix ou à partir d'un jeu de données Open Data, je puisse modifier ma carte à loisir.
Par exemple au lieu des communes, choisir les 27 cantons
Bref selon le jeu de données CSV téléchargé, redessiner à loisir ma carte.

(ce qu'apparemment Microsoft a du mal à faire en natif, ou alors je m'y prends mal)

EDITION: @p56
Je viens seulement de voir ton second fichier
(message#6)
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir le fil,
@Staple,
depuis votre post #1 de ce matin, je me demande comment on peut construire ex nihilo une carte choroplèthe à partir de ce fichier, tout en étant rapide et simple.
Alors, "just for the fun", j'ai tenté avec :
- Carte donnée au post #1 ( j'ai pris celui ci "Seulement les 333 enregistrements sélectionnés" )
- Tuto : Lien
Le résultat n'est pas mal pour un premier jet ( non optimisé ), le seul piège ce sont les iles qui oblige à utiliser du multi polygone.

Dans la PJ Tracer : Alt+F8 Tracer
Evidemment ça ne rivalise avec personne, mais peut intéresser les curieux de ce genre d'exercice. :)

1- La PJ est sans la table de coordonnées ( ne rentre pas dans 1Mo, même zippée ) Voir feuille syntaxe
2- Utiliser ce lien : https://www.cjoint.com/c/MCfaUnCRHre
 

Pièces jointes

  • IIle et Vilaine V7.xlsm
    29.1 KB · Affichages: 11
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour Sylvanu

Merci pour votre intérêt pour la question.

Test OK chez moi

Remarque:
Problème, si je fais un simple copier/coller depuis le fichier communes-france.xlsx vers la feuille LatLong
Plus de problème, avec un copier/Collage spécial/Valeurs seules
(mais j'ai fait ce copier/coller depuis Ille et Vilaine V7.xlsm)
Je vais ressayer depuis le fichier source du site data.bretagne.bzh

Merci pour le lien vers le tuto.

Question sur ton code VBA
Qu'a de spécial la ligne 290 ?
Code:
 If Ligne = 290 Then
        a = 1
    End If
Sauf erreur, ensuite a n'est pas utilisé dans le code, non ?
EDITION:
Apparemment oui, car si j'inhibe ce If/End If, un souci apparait sur
Selection.OnAction = "InfosVille"
Mais je n'ai toujours pas compris pourquoi et qu'est ce que ce a=1

Observations:
Deux contributions qui optent pour VBA et les shapes.
Donc c'est l'option à retenir, car...

J'ai refait plusieurs fois le test avec O365 et son Insertion/Cartes/Carte choroplèthe
(en suivant divers tuto)

J'obtiens toujours un résultat foireux avec des zones blanches sur la carte
(Rennes n'est même pas dessiné!)

Question:
Je m'y prends mal ou Microsoft n'aime pas les Bretons ?
[vous reprendrez bien un petit cliché]
(Bill n'a jamais du gouté une galette saucisses avec un petit verre de chouchen ou mieux avec une bière tiède un soir de match au Roazhon Park)
[/vous reprendrez bien un petit cliché]
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Staple,
Qu'a de spécial la ligne 290 ?
Oups! C'est un résidu de mise au point. Je l'ai supprimé et je n'ai rien observé de spécial, c'est toujours ok.
( en fait il était impossible d'accrocher une macro à toutes les shapes, en particulier pour Saint Malo, qui est ligne 290.
Donc un point d'arrêt sur a=1 me permettait de stopper sur ce shape et de comprendre le problème en pas à pas. Lorsqu'on a un multi polygone, la macro s'accroche sur un seul des polygones, non sur tous. Sauf s'ils ont des noms différents. C'est pour ça que je met un indice sur chaque polygone dans ce cas, et ça résoud le problème )

Au fait, Bill a déjà gouté une galette saucisses avec un petit verre de chouchen ... c'est pour ça qu'il n'aime pas les bretons. 😅😂🤣😂😅
 

Staple1600

XLDnaute Barbatruc
Re,

@sylvanu
Tu "tournes" sur 2007 donc tu ne peux pas choropléther en paix, comme dirait Stephan ;)

Ton code VBA (tel qu'écrit) ne fonctionne qu'avec le jeu de données: communes-france.xlsx, non ?
Si oui, je vais essayer de le "génériquer"
(A savoir copier/coller en feuille LatLong, différents jeu de données)
En cas de difficulté pour ce faire, je ne manquerai pas de solliciter ton aide, si tu le veux bien ;)

PS: vouvoiement ou tutoiement, j'ai unilatéralement opté pour le tu
Puis-je ?

@La Communauté de la Cellule du Milieu
Y-a-t-il un XLDnaute sous 365 (ou XL 2019 aussi peut-être) qui peut tester le jeu données avec l'outil natif d'Excel (Insertion/Cartes/Carte choroplèthe) ?
Et me redire si il constate le même phénomène (*) que celui que je décris.
Merci.

(*) Tracé de carte incomplet avec des incohérences.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
C'était juste le défi du jour :
je me demande comment on peut construire ex nihilo une carte choroplèthe à partir de ce fichier
Donc je ne suis pas allé plus loin. Avant de "génériser" il me fallait comprendre comment faire. :)

Mais si les fichiers ont la même structure et la même syntaxe, ça devrait aller ... sauf pour les constantes :
Fzoom , OffsetX, OffsetY et surtout Vmin1 et Vmin2 qui servent à normaliser. Mais je pense que là, il suffit de prendre les premières valeurs de Lat et Long.

PS: Tu Vous ... sans importance à mes yeux, ce ne sont que des conventions.

PS2: J'ai testé un jour sur 2019 ce genre de cartes. Essayez avec des cartes USA, ça me semblait pas mal. Avec des cartes "out of US" cela me semblait beaucoup moins correct.
Comme l'impression qu'il ont bien bossé leurs listes de coordonnées US, puis ensuite beaucoup moins pour le reste.
Mais un américain sait il seulement qu'il y a d'autres terres au delà de leur horizon ? :) ( Lien )
 

Staple1600

XLDnaute Barbatruc
Re

@sylvanu
Je suis confronté à autre souci
Certains jeu de données ne sont téléchargeables que sous trois formats
*.geojson
*.gpx
*.kml

J'ai essayé avec *.gpx
Pour ce faire, j'ai installé ce freeware : GSAK
Puis en suivant les tutos, fais à partir de GSAK -> Exportation -> CSV ou TXT
Sauf que dans le fichier obtenu, pas de Lat et de Long

Donc va falloir après import direct du fichier *.gpx dans XL faire parler VBA
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Sauf que dans le fichier obtenu, pas de Lat et de Long
Alors à quoi il sert le fichier ?
Car si un fichier de coordonnées ne comporte aucune coordonnée ....

Je viens de jeter un œil à ça : Lien
Ce format devrait contenir lat et long en ° , et en plus l'altitude.
En VBA, il suffirait de repérer les bonnes balises <wpt> :
VB:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx …>
  <!-- Metadonnées -->
  <metadata> … </metadata>
  <!-- Exemples : Point de cheminement -->
  <wpt lat="--.------" lon="--.------">
    <ele> -.- </ele>
    <name> … </name>
  </wpt>
  <wpt …>
 

Staple1600

XLDnaute Barbatruc
Re

@sylvanu
Ce que je voulais dire c'est que dans le *.gpx, il y a tout ce qu'il faut
Mais pas dans le CSV obtenu avec l'export réalisé avec GSAK

Par contre, avec un autre logiciel(*) , l'export me fournit bien les colonnes Lat et Long
(*) : RouteConverterWindows.exe (qui nécessité l'installation du runtime Java)

Mais comme je ne parle pas le *.gpx, j'ai du mal à avancer

Je vais poster le lien vers mon *.gpx de test
Voici le lien: http://u.osmfr.org/m/429406/

Quand la carte est affichée, cliquez à gauche sur l'icone Exporter et partager la carte
Enfin dans la fenêtre qui s'affiche à droite dans le liste déroulante: Télécharger les données
choisir : gpx
puis cliquez sur Télécharger les données (bouton bleu)

PS: J'ouvre désormais ce gpx directement dans Excel avec PowerQuery
(en choisissant = comme séparateur)