Probleme pour débutant

Signaler
Messages postés
7
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
4 janvier 2008
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour, alors voila j'ai un programme a faire en vb et je n'ai que de tres minces connaissances dans ce domaine.

Mon objectif: j'ai une liste de villes avec leur coordonnées gps dans un tableau dans une feuille excel
sur une autre feuille excel j'ai une carte de france sur laquelle j'ai dessiné des points correspondant a ces villes.

Ce que je cherche a faire, c'est que lorsque je clique sur une ville, un userform (que j'ai déja créé) apparaisse et m'indique le nom et les coordonnées gps de cette ville, et qu'ensuite il me stocke ces coordonées afin de les exploiter plus tard.
En fait je ne souhaite pas faire 50 userforms différents et je voudrai savoir comment on fait pour aller recueillir ces informations dans la feuille excel.

Si quelqu'un pouvait m'aider, ce serait extremement sympa.

Merci beaucoup

elmonticulos

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Si c'est dans Excel, le langage est du VBA, pas du .Net (catégorie modifiée)

Pour ton problème, la solution dépasse très largement le stade du débutant :
- Sous VBA, ce n'est pas l'idéal (langage limité)
- Ta carte de France se trouve où, dans quoi ? Un PictureBox dans un UserForm ?
Pas facile de récupérer la position de la souris au moment du clic, mais faisable
- Comment penses-tu pouvoir faire le lien entre l'endroit où tu cliques et les coordonnées réelles géographiques (GPS) ?
Je ne t'apprends rien, la terre est ronde.
Alors, si ta carte de France est une représentation standard, un centimètre à Dunkerque et un centimètre à Marseille ne représentent pas les mêmes distances.
Donc impossible (ou du moins compliqué) de faire un rapprochement mathématique entre l'échelle de ta carte et les coordonnées réelles pour retrouver la ville.
- Ensuite, il faudra faire des recherches dans ton tableau Excel pour trouver la ville se rapprochant de la coordonnée calculée.
Là aussi, rechercher quelque chose de proche n'est pas facile ...

Si c'est une première application pour toi, lache tout de suite, tu vas te casser les dents et tu risques de te dégoutter de la programmation alors que c'est simplement que le projet est trop complexe.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
7
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
4 janvier 2008

Bonjour!
déja merci de m'avoir répondu, ensuite quelques éclaicissements:

ma carte de france se trouve sur une feuille excel  en tant qu'image insérée.

sur cette carte j'ai placé des points à l'aide de leurs coordonnées gps(que j'ai converties pour qu'elles soient a la bonne place)

dans le meme classeur, sur une autre feuille excel j'ai un tableau avec le nom des villes et leurs coordonnées gps

ce que je souhaite faire c'est qu'en cliquant sur le point d'une ville un userform s'affiche, aille récupérer ces informations dans le tableau et les affiche.

en gros je souhaite faire correspondre ces points de villes avec une ligne du tableau  pour les récupérer et les afficher (et par la suite les réexploiter)

Voila, j'espere t'avoir éclairci ou toute autre personne susceptible de pouvoir me renseigner un peu

Merci!!!
elmonticulos
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Re
Ok et merci de ces éclaircissements.
La question : Les points que tu as ajouté sur ta carte, sont-ils des objets ou bien des 'taches' par dessus le graphisme, c'est à dire sont-ils intégrés au dessin de la carte ou sont-ils des objets distincts ?
Si ce sont des surcharges sur le graphisme de la carte initiale, difficile de dissocier le point d'un autre élément du graphisme.
Si ce sont des objets distincts, des "circles", là il y a possibilité de faire quelque chose.
Il sera (je pense) facile de détecter un Clic.
Il faudrait regarder dans les propriétés d'un des points et vérifier si l'objet à un attribut "Tag" comme en VB6.
Cet attribut ne sert à rien programmaticalement parlant, ce n'est qu'une zône où tu peux stocker ce que tu veux, par exemple le nom de la ville et/ou ses coordonnées GPS.
Exemple : En mettant ceci dans le Tag, tu pourras facilement récupérer chaque donnée : Le Havre/49.5/0.13333
(il te suffira de redécouper la chaine en utilisant le / comme séparateur)

Ensuite, il sera facile d'afficher les données dans une UserForm en guise de popup, mais il faudra que tu renseignes à la main les informations de chaque point dans le Tag ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
7
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
4 janvier 2008

En fait c'est exactement ce que je cherche a faire mais pourrais tu m'expliquer comment remplir ces "tag" car ce sont bien des cercles que j'avais dessinés et placés sur la carte en entrant leur coordonnées.

J'utilise une vieille version de excel faut il une plus récente pour ces "tag" ou puis je le faire avec n'importe quelle version

et enfin pourrais tu me donner un exemple des lignes de code que je devrai entrer pour réutiliser les informations stockées.

Je te remercie encore beaucoup pour ton aide et ta patience

elmonticulos
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Re
Désolé, j'ai fait le test sous Excel et aucun objet n'a de propriété .Tag.
De plus, les cercles dessinés dans une feuille n'ont aucun attribut.
Il te faut donc installer des "PictureBox" ou plutôt des "Image", moins gourmant en mémoire.
Les objets ne pouvant pas être indexés sous VBA, il ne sera pas possible de gérer cela par indexation.
Il va donc falloir que tu insères une Image par point ET que ailles déclarer le nom de cette image dans une nouvelle colonne de ta feuille des renseignements GPS afin de pouvoir rechercher une ligne à partir du nom de l'Image (Image32.Name) grâce à une macro associée à l'évènement Image32_Click.
De toutes les façons, il te faudra saisir manuellement toutes ces infos.
Un dernier rappel : Les interfaces graphiques de VB (VBA ou VB6) limitent le nombre de composants à environ 250.
Attention à la lourdeur du fichier final ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)