XL 2016 Zone de chalandise interactive 2.0

arake

XLDnaute Nouveau
Bonjour,

Ravi de faire partie de ce forum! Je m'appelle Anthony et je vous écris de la Nouvelle-Calédonie.
Je viens chercher de l'aide pour un projet pédagogique, à savoir réaliser une zone de chalandise interactive sur Excel svp

Quelques infos préalables :

- Le post s'intitule 2.0 car il en existe déjà un, mais le niveau est trop avancé pour moi! Je ne sais pas du tout utiliser les VBA.

- Pour comprendre comment dessiner une carte ou une zone sur excel, j'ai téléchargé des 10 aines de cartes de France, départements, etc. trouvées sur des forum. J'ai cru comprendre que ces cartes étaient directement téléchargées d'un site style https://public.opendatasoft.com/ mais je n'ai pas réussi à y apporter les modifications pour générer une carte de la Nouvelle-Calédonie.

Ce que je voudrais faire :

1/ Dessiner ou importer une carte de Nouméa et du Grand Nouméa sur une feuille Excel.

2/ Y superposer une zone de chalandise que j'ai définie et exportée du site maps.openrouteservice.org. Les coordonnées GPS de cette zone (un polygone) est en pj dans l'onglet 1 "coord gps zdc".

3/ Placer des commerces sur la carte de Nouméa et du Grand Nouméa à partir de leurs coordonnées GPS (onglet 2 "coord gps commerces").

4/ Et enfin, est-ce que vous connaissez une formule qui permettrait de déterminer quels commerces sont à l'intérieur de cette zone de chalandise ?
Concrètement, en colonne D du tableau dans l'onglet 3 "zdc récap", comment est-ce que je peux déterminer par une formule si ALIM1 fait partie de la zdc ("Oui") ou non.

Dans le 4ème onglet, il y a un screenshot de ce que j'ai pu faire sur google earth. L'épingle blanche représente le point central à partir duquel j'ai défini la zdc (c'est un tracé isochrone de 15 minutes en voiture), la zdc est en rouge, et les différents commerces sont représentés par des cercles de couleurs qui varient selon le type de commerce (alimentation, boucherie, etc.).

Le rendu est assez correct mais je dois flécher manuellement les commerces qui sont à l'extérieur de la zdc...ce qui m'a pris pas mal de temps la dernière fois que j'ai dû rendre un devoir de ce genre avec seulement une petite centaine de commerces spécialisés. Pour le projet en cours, il s'agit de tous les commerces généraux et spécialisés ...

Un grand merci d'avance aux personnes qui voudront bien m'aider!🙏
 

Pièces jointes

  • coord gps forum.xlsx
    305.7 KB · Affichages: 7

Nairolf

XLDnaute Impliqué
Salut,

Ta demande n'était pas si simple, en cherchant pas mal sur internet comment construire mathématiquement mon raisonnement (déterminer si un point est inclus dans un polygone), j'ai pu créer le fichier joint avec une ébauche de fonction personnalisée qui fait le travail mais qui est à améliorer pour être plus "universelle".
 

Pièces jointes

  • coord gps forum_Nairolf2.xlsm
    326.9 KB · Affichages: 8

arake

XLDnaute Nouveau
Merci Nerolf, c'est super!

Donc si j'ai bien compris la démarche, tu as créé un graphique à partir des coordonnées gps de la feuille 1. Ensuite placé les repères de la feuille 2. Et enfin, utilisé la formule =PointDansPolygone() pour vérifier si ces repères font partie du polygone.
C'est bien ça ?

Je regarde ça de plus près! Et j'essaie de faire des tests avec d'autres repères gps.
 

arake

XLDnaute Nouveau
Re salut Nerolf!
En fait tu as créé de toutes pièces la fonction PointDansPolygone! Je trouvais bizarre de ne pas pouvoir trouver de littérature à ce sujet sur internet. 🙃
C'est ce qu'on appelle un User-Defined Function non ?

Du coup, est-ce que je peux l'utiliser pour un polygone dont le set de coordonnées est plus grand ? Ou est-ce que je dois modifier des références d'abord (plage de cellules, valeurs, etc.) ? Si je dois modifier des références, comment est-ce que je fais stp ?

Merci encore!
 

Nairolf

XLDnaute Impliqué
Salut arake,

Comme tu l'as vu, le graphique m'a juste servi pour vérifier que les points identifiés en dehors ou dedans par ma fonction correspondent à la réalité.

Pour la recherche sur internet, j'ai mis : point à l'intérieur d'un polygone concave.

Oui il s'agit bien d'une fonction personnalisée.

J'ai fait un code pour une fonction non dynamique (ça pourrait être amélioré), pour simplement modifier la plage de coordonnées de la zone, il faut modifier ces 2 lignes dans le code vba :
VB:
Set plageX = Worksheets("coord gps zone de chalandise").Range("B2:B92")
Set plageY = Worksheets("coord gps zone de chalandise").Range("C2:C92")

A noter, que comme je fait un lien vers une autre cellule:
VB:
yR = Worksheets("coord gps zone de chalandise").Range("D1").Value + 0.1
il faut vérifier que le calcul dans cette cellule est aussi mis à jour (recherche du max de la plage de longitudes), on pourrait aussi travailler en vba dessus, mais je n'ai pas cherché comment faire (avec un application.worksheetfunction.max() ça devrait marcher).
 
Haut Bas