Comment programmer un calcul de surface ?

Résolu/Fermé
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015 - 11 sept. 2012 à 16:25
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 26 sept. 2012 à 15:41
Bonjour à toutes et à tous,

Autant préciser tout de suite que je ne connais pas trop Excel (j'utilise la version 97) et encore moins Open Office] (j'utilise la version 3.3), mais j'ai un problème récurent que je souhaiterai éliminer, alors je lance une bouteille sur le net :-)

Voilà mon soucis :

Je reçois régulièrement des listings de coordonnées au format "nxy.txt" (où n est un numéro de point, x et y ses coordonnées cartésiennes) le tout avec un séparateur "espace".
Mon problème est de calculer la surface de polygones à partir de ces fichiers (en s'appuyant sur une documentation papier précisant la liste des points formants les différents polygones à calculer). Il s'agit en fait d'une vérification de calculs topométriques.

J'ai trouvé une formule permettant de faire le calcul sur un forum :

"c'est facile : soit un polygone de n points (le dernier a les mêmes
coordonnées que le premier, sinon, on ajoute le premier point à la liste)

soit X[1] et Y[1] les coordonnées du premier point et n le nombre de
points (donc X[n] = X[1] et Y[n] = Y[1])

la surface est la valeur absolue (le signe du résultat dépend du sens de
parcours du polygone) de la somme pour i variant de 1 à n de
( X[i+1] - X[i] ) * ( (Y[i] + Y[i+1] - 2*Y[1] ) / 2

Bref, c'est plus long à expliquer qu'à programmer..."


J'ai alors essayé de jouer aux apprentis programmeur sur Excel, et comme l'avais si bien souligné mon interlocuteur, bien plus facile à dire qu'à faire :-(

J'aimerai vous transmettre ma modeste ébauche pour voir s'il serait possible d'améliorer cet essai :-)
Malheureusement, je ne sais pas comment il faut faire :-(

je souhaiterai :

1) Que l'on vérifie que mes calculs sont corrects, le plus souvent tout se passe bien, mais parfois je trouve des résultats bizarres (je suis alors obligé d'utiliser un logiciel de Dessin Assisté par Ordinateur, relier tous ces points dans le bon ordre, puis de demander un calcul de surface. Le résultat confirme souvent mon intuition à savoir que mon fichier excel déconne, du coup je ne suis jamais vraiment sûr de mon coup)

2) Remplir directement le tableau en sélectionnant le fichier ".txt" (et non : l'ouvrir dans excel puis copier et coller les valeurs dans mon tableau). Ce qui au passage résoudrait les problèmes liés à la taille de mon tableau (j'ai prévu 200 lignes pour être tranquille, mais parfois les listings de points sont très long et je dois faire une sélection en amont)

3) Le calcul nécessite de désigner l'ordre d'apparition des points (le parcours du périmètre du polygone). J'ai donc prévu à cet effet une colonne "N° d'Ordre".
Y-a-t'il une possibilité de remplir cette colonne à la souris ? En prévoyant un retour au point précédent en cas d'un clic hasardeux (très ennuyeux de tout recommencer quand on en est au 98ième point ....)

Voilà, par avance merci à tous d'avoir lu ce message, merci à ceux qui pourront m'aider et j'espère à très bientôt ;-)






A voir également:

120 réponses

Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
21 sept. 2012 à 14:45
Je fais le test avec ton nouveau fichier calcul_surface-M10.xls (sous 97).
Je clic sur nouvelle sélection et je saisie un nouveau lot.
Le graphique s'incrémente partiellement (doit tenir compte du nombre de sommets du précédent calcul)

copie écran : https://www.cjoint.com/?BIvoQzROiwz

je clic sur Actualiser et toujours le même résultat cf. post 99
j'enregistre et ça donne : https://www.cjoint.com/?BIvoS7kHIFh
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 21/09/2012 à 17:16
re

1. lorsque j'actualise ton fichier (post #108), je n'ai pas de problème, c'est pénible !!!
le problème vient peut être du fait qu'une procédure d'un module de feuille, travaille sur une autre feuille
j'ai mis un peu d'ordre et déménagé ces procédures dans le module 1
tu testes avec 97, mais je commence à douter ....

2. la liste de validation n'est peut être pas une bonne idée pour la saisie, elle crée des problèmes de maj que je n'arrive pas à régler
je les ai supprimées et j'ai tenté une gestion lors d'une erreur de saisie
j'ai ajouté un bouton transfert depuis la feuille ListingXY (pas obligatoire de l'utiliser) qui peut éviter ces problèmes

https://www.cjoint.com/?3IvqG6XpGgY

4. au passage dans la feuille calcul on n'a pas vraiment besoin des colonnes A à E
puisque la fonction aire polygone fait le boulot
5. pour ce qui concerne ton post 105, n'es tu pas en train de revenir à la case départ, hormis la feuille ListingXY qui reste à peu près indispensable?
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
21 sept. 2012 à 18:53
CA MAAAAAARCHE !!!!!!!!

1. Génial, le graphique s'incrémente seul, donc plus besoin de clic sur "Actualiser".
J'ai supprimé le bouton "actualiser le Graphique" (car si je clic, toujours le même résultat : ça plante)
J'ai également effacé les axes, car les X et Y sont des données réduites, donc inutile pour repérer un point, pour le repérer : suffit de regarder l'étiquette ;-)

2. Génial, c'est pile ce que je voulais, TROP FORT

4. Je supprime les colonnes et je teste car je ne voudrais pas que ça mette le bazar, surtout pour le cas "vide" avec ta déclaration A2=B2=1 ?

5. Je ne crois pas revenir en arrière, car le but du jeu est de rester sur l'onglet "Saisie". Toutes les opérations de traitements "automatisés" se feraient sur cette feuille.
L'onglet "Listing NXY" serait réservé au cas où je devrait saisir manuellement les points (certains opérateurs sont fâchés avec l'informatique et il transmettent un listing de coordonnées papier que je doit saisir manuellement)

En revanche je ne comprends pas le "Transfert", tu peux m'expliquer ?
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
21 sept. 2012 à 19:00
Si on peut faire 5. il faudrait envoyer "Nettoyer la liste des fichiers" au début de "Importer" si je comprends bien :-)
Le bouton "RAZ" resterai lui en effet sur l'onglet "Listing NXY", mais ne semble pas très utile ... sauf à avoir la flemme de supprimer les valeurs des colonnes A, B et C manuellement, mais là c'est un peu abuser :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
21 sept. 2012 à 19:28
Seul reste à présent le problème lié à l'emplacement des fichiers, dommage que la solution du post 97 ne soit pas envisageable :-(

En tout cas, un GRAND MERCI pour tout tes efforts, ce que tu as fait est vraiment génial. En plus avec une version obsolète, CHAPEAU BAS !

Attends : je crois que je viens de comprendre "transfert" .....:-)

En fait je crois que je me suis mal exprimé :-(

J'espères avoir été plus clair dans le 5. du post 110 complété par le post 111.

Il ne s'agit certainement pas d'agir dans l'onglet "Listing NXY" (je ne veux pas cocher les points dans "Listing NXY" pour les transférer vers l'onglet "Saisie").

Au contraire, tout devrait normalement se passer dans l'onglet "Saisie" sans jamais intervenir dans "Listing NXY" (sauf dans d'une saisie manuelle des données ...

Dans l'onglet "Saisie" je saisie manuellement les n° des points (après avoir renseigné correctement les champs correspondants à l'emplacement des données et après avoir importé ces dernières) et tout le reste se fait tout seul :-)

- le calcul de la surface
- le graphique
ensuite j'imprime s'il y à un bug et je transmet à l'opérateur

@+
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
21 sept. 2012 à 20:19
1. Attention. ne pas supprimer les colonnes ABCDE de la feuille calcul comme ça,
- les plages du graphiques sont là,
- A2=B2=1
et il doit y en avoir d'autres comme ça

2. pour ce qui est de la nouvelle organisation de la feuille Saisie
il faudrait que tu places les bouton, marque les plages etc ...
et tu m'envoies tout ça

3. le graphique s'incrémente seul, donc plus besoin de clic sur "Actualiser".
J'ai supprimé le bouton "actualiser le Graphique" (car si je clic, toujours le même résultat : ça plante)

je vais quand même essayer de trouver le bug

4. je vais quand même réfléchir à l'histoire des dossiers/sous dossiers

bonne soirée
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
21 sept. 2012 à 21:30
1. Ok , je ne touche à rien dans la feuille Listing NXY, après tout ça ne gêne en rien, puisqu'au final je n'irai dans cet onglet que très rarement :-)

2. je fais ça demain et je te renvoie le fichier.

3. merci, c'est sympa, mais ne te prends pas trop la tête, je t'ai assez fais suer comme ça

4. super, c'est vraiment sympa, ça serait super cool si cette mise en forme pouvait fonctionner

bonne soirée et à très bientôt

RQ : il faudra VRAIMENT que tu me dise comment je peux te remercier !!!!
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
22 sept. 2012 à 13:49
Salut,

Je n'aime pas trop faire ce que tu me demande en 2. du post 113 (ça fait donneur d'ordre), mais effectivement je crois que je serai incapable d'y arriver tout seul car j'aurai trop peur de faire une mauvaise manipulation qui plante l'exécution des différents codes.

Ci-joint le fichier tel que j'aimerai qu'il soit au final

https://www.cjoint.com/?BIwnPIAzWv0

J'espère ne rien avoir oublié :-)

A bientôt.

RQ : dans des précédents post tu disait qu'il fallait que je renomme le fichier transmis en "calcul_surface-Mxx.xls" rassure-moi, je peux renommet comme je veux ou il y a des codes qui fige le nom du fichier ?
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
22 sept. 2012 à 17:53
1. pour ce qui est du nom du fichier, tu fais ce que tu veux (c'était juste histoire d'enlever les codes qu'a rajouté cjoint.com)
2. un début de réponse avec quelques questions au sujet des dossiers/sous dossiers
3. pour les cases à cocher, si tu trouves qu'il y en a trop, n'hésites pas tu coupes
.. j'ai mis la totale vu que ça ne m'a rien couté (un copier/coller d'une autre appli)
4. j'ai inhibé le bouton actualiser (je ne comprends toujours pas pourquoi il plante sous 97)

https://www.cjoint.com/?3IwrRMNf3pt
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
22 sept. 2012 à 18:56
1. Un truc bizarre que j'avais oublié de te signaler dans le précédent post.
Quand je clic sur "Enregistrer", j'ai ce message :

https://www.cjoint.com/?BIwsnsjWVoX

Je ne l'avais jamais auparavant tout simplement car je n'avais jamais enregistré ton fichier ... Je ne voulais pas le détériorer, donc quand je quittais et qu'il me demandais : "voulez-vous enregistrer les modifications", j'ai toujours répondu "NON".
Désolé, mais ça doit être important !!!!
Tout à l'heure, j'avais cliquer sur "OUI" pour t'envoyer l'ébauche du fichier final désiré et j'ai complètement oublié de te signaler ce message d'erreur :-(

Je te renvoie le fichier avec les réponses à tes question. C'est beaucoup plus parlant finalement que d'essayer de décrire les choses :-)

Juste une précision, ton idée des cases à cocher est géniale, mais comme je te le disais dans un précédent post, si les coordonnées du graphique ne sont pas dans le même repère que les coordonnées qui se trouve à gauche du graphique, ces axes ne servent à rien. Par contre, si tu peux mettre les bonnes coordonnées, ça m'intéresse (Je sais pas si c'est assez clair, regarde dans le fichier c'est mieux).

De plus,

quand coche Axes :
erreur : https://www.cjoint.com/?BIwsFvcX21t
code : https://www.cjoint.com/?BIwsF2rI9dy

quand coche quadrillage : il ne se passe rien, comme si aucune action n'était liée à cette coche

quand coche Etiquettes :
erreur : https://www.cjoint.com/?BIwsHyl7TMY
code : https://www.cjoint.com/?BIwsIaI5KAI

quand coche marque :
erreur : https://www.cjoint.com/?BIwsJL2BpEN
code : https://www.cjoint.com/?BIwsJ5vJtgE

Décidément, à chaque fois que tu veux toucher aux propriétés du graphique il est pas content :-(

RQ : le bouton "Fin de saisie manuelle des données" renvoie en B5 de l'onglet "Saisie" alors qu'il devrait renvoyer en B3 (au passage, il sera possible par la suite de protéger certaines cellules ?)

Enfin je te renvoie ton fichier (J'ai cliqué sur "OUI" au message "https://www.cjoint.com/?BIwsnsjWVoX" ci-dessus)

fichier retour : https://www.cjoint.com/?BIws3iMkuuF

Encore une fois désolé pour le message 1. Je suis sûr que c'était hyper important en plus, quel nul, je ne sais vraiment pas pourquoi je n'avais jamais enregistré avant . Mille excuses
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
22 sept. 2012 à 19:11
1. pas de chance avec les propriétés du graphique, on va donc oublier les cases à cocher et on supprimera les axes à la main et à la fin
2. quand tu reçois un fichier tu fais de suite un enregistrer sous

bon, je plie boutique ....
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
22 sept. 2012 à 19:40
En fait, quand je reçois un fichier, je le renomme, puis je l'ouvre.
Avant je n'enregistrais pas donc au moment de quitter, je répondais "Non" au message "voulez-vous sauvegarder les modifications...", du coup : pas de message.
Maintenant, quand je quitte j'enregistre : clic sur biscotte :-) et la je réponds Oui au message que je t'ai envoyé dans le précédent post.

Si je comprends bien, à présent il faudrait que j'ouvre directement ton fichier et que je fasse (avant toute chose) fichier => enregistrer-sous ?

OK, dis c'est pas trop grave pour le message ????

@ bientôt
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 23/09/2012 à 16:29
1. quelques problèmes réglés .... pas tous
j'ai eu un remord avec les cases à cocher et tenté quelque chose, tu dis
la question est de savoir si ça plante
https://www.cjoint.com/?3IxpY25SKo8

2. ital>dis c'est pas trop grave pour le message ???? </ital>
j'avoue que je n'en sais rien, mais apparemment, c'est non
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 23/09/2012 à 17:48
une idée pour la gestion des axes, moins compliquée, on les garde mais on n'affiche pas les étiquettes de graduation

https://www.cjoint.com/?3IxrUVZZVXu
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
24 sept. 2012 à 17:43
Salut,

Désolé pour la réponse tardive ...

Sous 97 :

1. Je n'ai pas pu tester l'import de fichier car la liste des sous-dossiers "xxx Da xxx" que j'obtient ne correspond pas aux sous-dossiers contenu dans le sous-dossier date que je choisis (en revanche, la liste des sous-dossiers "20xx xx xx" se fait correctement).

Cf retour fichier : https://www.cjoint.com/?BIyrRxV3d0y

2. Toujours les mêmes problèmes pour les coches (erreurs différentes)

erreur quand coche étiquettes : https://www.cjoint.com/?BIyrlRGiqeU
code erreur coche étiquettes : https://www.cjoint.com/?BIyrmhC4EXI

erreur coche marques : https://www.cjoint.com/?BIyrmZ5m0NB
code erreur coche marques : https://www.cjoint.com/?BIyrnpGbPQB

3. Reste quelques petit détails à régler Cf zone de texte dans fichier retour.

Je teste sous 2010 et je te tiens au courant
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
24 sept. 2012 à 18:00
Sous 2010, tout semble se passer correctement :-)
Les coches marchent nickel :-)
Pour l'importation, ici ça fonctionne bien (Seuls quelques petits détails de nettoyage ou de replacement après l'exécution de certains codes subsistent Cf. fichier retour du précédent post)

Omission dans fichier retour :

Après "importer le fichier de données" la cellule active (après le message) devrait être B3

RQ : si on fait une importation de données et que l'on veut sélectionner un autre fichier (contenu dans le même sous-dossier DA) on ne peut pas car la sélection n'est plus active). Enfin, pour réactiver la sélection, il faut à nouveau choisir le sous-dossier DA, et là pas de problème :-)

J'espère que je ne t'embête pas trop avec tous ces petits détails.
SURTOUT n'hésite pas à me le dire ...

MERCI encore pour tout et @ bientôt
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
24 sept. 2012 à 19:02
1. quelques mofifs

https://www.cjoint.com/?3IysWMuttqI

2. tu tentes encore 97 pour les coches (plus besoin de m'envoyer des horreurs, tu me dis simplement si ça plante toujours, on pourra toujours les inhiber/supprimer plus tard)

3. pour ce qui est de la liste des sous dossiers DA que tu n'obtiens pas
- est ce seulement avec 97?
tu peux tester la procédure chargée du boulot (elle est dans Module 1)
Public Sub Lister_SousDossier_DA()
tu met un point d'arret devant With Sheets(nomFS) (clic dans la marge, tu dois voir un gros point)
tu lances la procédure en validant un dossier date
le programme va s'arrêter sur le point d'arrêt (ligne jaune)
la touche F8 permet de continuer l'exécution pas à pas
tu cliques sur les variables répertoire, nf , etc .. au fur et à mesure de l'exécution, pour voir ce qu'elles contiennent, tu vois ce qui ne va pas avec ce que tu as sur ta machine
RQ. re-clic sur le gros point pour le supprimer

4. J'espère que je ne t'embête pas trop avec tous ces petits détails.
pas de problème

bonne suite
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
24 sept. 2012 à 21:26
Salut,

1. Ca avance bien

2. :-(

3. Je suis désolé mais je ne comprends pas trop comme m'y prendre, je vais essayé ; mais ça risque de prendre du temps ...

3. C'est effectivement seulement avec 97 que je n'obtiens pas la liste, avec 2010 tout roule (même les coches !!!)... reste seulement des petits détails (cf. fichier retour)

Ce que je ne comprends pas :

tu cliques sur les variables répertoire, nf , etc .. au fur et à mesure de l'exécution, pour voir ce qu'elles contiennent, tu vois ce qui ne va pas avec ce que tu as sur ta machine

4. MERCI

fichier retour : https://www.cjoint.com/?BIyvyo9n14E
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
24 sept. 2012 à 21:31
Avec 2010
l'import se fait correctement, mais les données ne sont pas triées dans l'onglet "Listing NXY" du coup quand les données ne sont pas dans le bon ordre dans le fichier importé, ça plante (message d'erreur "N° de point pas dans la liste"
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
24 sept. 2012 à 22:10
Important : Dans 2010 (donc je suppose que fera la même chose dans 97)
Je pense que se problème est là depuis le début, mais on est jamais "tombé" sur le cas :-)

Si dans mon onglet "Saisie", le dernier "N° Point" qui se trouve dans les données importées fait partie de la surface à calculer : il écrit les coordonnées "Est" et "Nord" (qui sont correctes !!!) mais m'affiche le message d'erreur "Le N° xxx n'est pas dans la liste", donc il nettoie.
Par conséquent, impossible de calculer une surface qui comprend "le dernier N° Point" des données importées.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
25 sept. 2012 à 11:33
pour les coches avec 97, on va laisser tomber, après tout tu peux toujours gérer ces options "à la main" pour le moment on inhibe les coches,

#127 ça ne vient pas de si loin que ça, c'est arrivé quand j'ai rajouté l'en tête de colonne (N°-Est-Nord) dans la feuille listing, j'ai oublié de faire la maj de la définition de la plage "plagenum"

#126 réglé (en principe)

#125 - 3 - est ce que tu as pu mettre un point d'arret dans le code?

https://www.cjoint.com/?3IzlBwAdibN

bonne journée
0