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

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
26 sept. 2012 à 09:24
1. le traitement de la saisie manuelle, avec message en cas de numéro déjà présent. C'est à tester pour voir comment ça se comporte
2. j'ai fait le ménage dans la feuille Listing
https://www.cjoint.com/?3IAjuiXC9js
3. en ce qui concerne la liste des dossiers DA sous 97, peux tu m'envoyer une copie d'écran de l'arborescence des dossiers

bonne journée
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 10:48
Réponse pour "calcul_surface_id07.xls" testé avec 2010

Salut,

Avec 2010 TOUT MARCHE A MERVEILLE :-)

Il reste juste quelques petits détails d'ergonomie, mais à première vue tout fonctionne très bien.

1. "Saisie manuelle des données" devrait également vider J5, J7 et J9

2. Le message "erreur" pour la saisie manuelle des coordonnées (cas d'une double entrée) fonctionne super. Pourrait-il être un peu plus explicite, du style "Le point N° xxx a déjà été saisi !"

3. "RAZ" devrait activer la cellule A2 de l'onglet "Listing NXY"

4. "Fin de saisie manuelle" devrait renvoyer en B3 de l'onglet saisie

5. Le choix d'un nouveau sous-dossier DA devrait lancer "Nouvelle Sélection" et "RAZ"

6. L'étiquette du premier N° Point n'est pas bonne
Cf. https://www.cjoint.com/?BIAkQw6Hcou

7. Serait-il possible qu'une saisie dans la cellule B3 de l'onglet "Saisie" active la cellule A8 pour inviter directement l'opérateur à la saisie ?

Je teste avec 97 et je te dis :-)
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 10:53
Réponse post #129 point 3.

https://www.cjoint.com/?BIAk1Cb0pdF
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
26 sept. 2012 à 12:07
1-2-3-4-5-7 OK
pour 5 j'ai étendu la modif à toutes les cellules
6- je n'ai pas l'erreur chez moi

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

pour 97, et la saga des dossiers DA tu tentes de les mettre à la main dans la liste


bonne suite
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
26 sept. 2012 à 12:13
Salut,

Je suis sur le coup "point d'arrêt". Je suis en train d'effectuer le pas à pas et de mettre en commentaire les différentes valeurs. Je te transmets le fichier dès que j'ai fini les boucles :-)
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 13:03
Voilà le fichier avec mes commentaires :

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

RQ : si j'avais su j'aurai mis moins de sous-dossiers dans le répertoire 2012 09 19 :-)

l'arborescence est celle données précédemment, mais au cas où :
https://www.cjoint.com/?BIAmTGLANgC

A la fin de mon test en pas à pas, j'ai remarqué que la liste s'était incrémentée dans la colonne K (alors qu'en automatique ça ne marche pas ... bizarre !!!), mais quand j'ai sélectionné un sous-dossier DA, c'est la liste des fichiers qui était cette fois inactive (rien dans colonne I de l'onglet "Listing NXY")

RQ : j'ai vu que la liste des sous-dossiers DA qui s'est créée par "miracle" après le pas à pas, n'était pas triée, ça peut jouer pour la suite ??? Et au passage, y-a-t-il un moyen de la trier (plus esthétique pour la sélection)

J'ai relancé le fichier.
A nouveau, même pb avec sous-dossiers DA (normal).

J'ai copié les noms manuellement dans la colonne K, les sous-dossiers sont alors bien dans la liste J7 de l'onglet "Saisie" (selon tes conseils du post #132), MAIS <gras>la liste des fichiers ne se crée pas</gras> :-(

J'ai alors copié les noms des fichiers manuellement dans la colonne I de l'onglet "Listing NXY", la liste des fichiers apparaît donc dans la liste J9 de l'onglet "Saisie".

Je lance l'importation du fichier : OUF !! TOUT MARCHE ensuite comme sur des roulettes :-)

Je teste ton nouveau fichier cet aprem (post #132) pour les corrections 1-2-3-4-5-7, pour 6. c'est effectivement très surprenant, mais il me semble que j'ai toujours eu le problème ....

@ cet aprem si t'es dispo :-)

MERCI
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 26/09/2012 à 13:46
1. au vu te tes commentaires, tout à l'air OK les noms des fichiers DA et les numéros de lignes dans la colonne K
peut être faut il se placer dans la feuille listing avant de faire la liste
j'ai rajouté ça dans les procédures Lister---
  ' on se place dans la feuille Listing 
  Sheets(nomFL).Select

2. pour ce qui est de ton pb d'étiquettes, dans ton envoi, avec la feuille saisie vide, il y a une étiquette dans le point (552), ce qui n'est pas normal
quand tu fais Nouvelle Sélection, le point doit se "vider"

https://www.cjoint.com/?3IAnOM3BFB9
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 13:55
Ci-joint ton fichier retour de calcul_surface_id08 avec 2 petits commentaires en page "Listing NXY", par contre pas réussi à reproduire erreur concernant l'étiquette !!!!

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

Je teste ton nouvel envoi

@ tout à l'heure ;-)
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 14:08
avec calcul_surface_id09 , (RQ : à présent je ne teste qu'avec 97)

Quand je mets "D:\Test" en J3, je suis renvoyé sur l'onglet "Listing NXY" et je vois que la liste des "sous-dossiers dates" s'est bien créée.

Je retourne dans l'onglet "Saisie" et je sélectionne 2012 09 19, là, pas de renvoie comme ci-dessus, je vais voir ce qu'il se passe dans "Listing NXY" et je vois que la liste des "sous-dossiers DA" ne s'est pas créé :-(

Cf. https://www.cjoint.com/?BIAoicNhV89
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
26 sept. 2012 à 14:20
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 14:22
Toujours le même problème concernant la liste des sous-dossiers DA et la liste des fichiers.

1. Mais, en plus, j'ai remarqué (après avoir correctement importé un fichier de données avec remplissage manuel des colonne I et K et effectué un calcul) que si je clic en J9 pour choisir un autre fichier : Excel plante :-(

2. Petit détails, il serait agréable d'avoir un petit message (du même style que quand on saisie un point qui n'est pas dans le listing) quand on saisie 2 fois un même n° de point
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 14:24
Réponse au post #138

Désolé, toujours pareil :-(
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
26 sept. 2012 à 14:44
1. j'avoue que j'ai du mal à comprendre, dans tes commentaires, on voit bien les noms des dossiers DA défiler ainsi que les bons numéros de lignes (colonne K) où ces noms devraient aller se placer!!!
on recommence la vérification pas à pas avec le point d'arret dans
Public Sub Lister_SousDossier_DA()
sur l'instruction
Sheets(nomFL).Select
pas la peine ne noter, tu vois si ça correspond
normalement quand tu lances en validant une date dans la feuille Saisie
- tu te retrouves sur le point d'arret
-F8 tu dois te retrouver dans la feuille Listing
- tu reviens éventuellement dans le code
- tu déroules avec F8
les deux premiers nf sont '..' et '.' et li ne bouge pas
ensuite
nf prend les noms des dossiers DA et li augmente
et ..... la colonne K devrait se remplir gentiment !

2. pour on erreur à la 2° importation as tu essayé de ressaisir le même fichier (au cas où erreur de frappe sur le nom ..)
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 26/09/2012 à 15:02
j'oubliais

j'ai zappé une partie de ton #134
on essaie
dans lister-SousDossierDA et dans Lister_Fichiers, remplacer
Sheets(nomFL).Select
par
Sheets(nomFL).Activate
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 15:04
1. je pense que les "sous-dossiers DA" et "les noms de fichiers" que tu vois sont ceux que j'ai saisis manuellement !

Je te renvoie ton dernier fichier sans faire de saisie manuelle. Il faudrait peut-être que tu créé la même arborescence que moi

fichier : https://www.cjoint.com/?BIAo3dNDzxo

les données : Données 1.txt ; Données 1bis.txt ; Données 2.txt ; Plan.txt ; Plan2.txt

sont dans le sous-dossier : 189 DA 123

qui lui est contenu dans le sous-dossier 2012 09 19

qui se trouve dans D:\Test


2. En fait dès que je clic sur la cellule, ça plante, je n'ai pas le temps de choisir . Je viens également de faire un test sur un micro portable (également sous 97, mais avec un chemin d'accès aux données différent)

Toujours le même problème évidemment, mais cette fois l'import ne marche pas, quand je clic sur "importer le fichier des données", j'ai le message :

"le point n° 0 a déjà été saisi"

et excel plante (je ne peux plus cliquer nulle part :-)
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 15:15
regarde ça et tu me dis si normal ou pas

https://www.cjoint.com/?BIAppnY4Enl
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 15:20
Stop, désolé j'avais laissé la liste des sous-dossiers DA (oublié de "nettoyer") je continu
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 15:21
Re-désolé, je confirme le post #134 (ne pas tenir compte du post 135)
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 15:24
J'ai l'impression qu'il recherche les fichiers avant de rechercher les sous-dossiers DA, le plus bizarre c'est qu'il me trouve tous les fichiers (ceux que j'avais au précédent import).
0
Pastinfleur Messages postés 132 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 11 mars 2015
26 sept. 2012 à 15:41
nf prend toutes les valeur, autant des fichier .txt que du .rtf ...etc voire même des noms de dossiers, je vois défiler les sous-dossier dates. La boucle s'arrête (quand nf="") mais je ne sais pas pourquoi car j'ai eu toute sorte de fichier, toute sorte de sous-dossier, MAIS PAS TOUS.

J'arrive alors dans Public Sub Lister_DossiersDate() que l'on passe rapidement (rien de bizarre à signaler mais je sais pas trop ce que je cherche ...)

j'arrive sur Private Sub Worksheet_Change(ByVal Target As Range) et là par contre il me semble qu'il y a un truc suspect, à voir :

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

suis ensuite renvoyé sur

Sheets(nomFS).Range(csdosDA).ClearContents où j'ai l'impression que l'on nettoie la colonne des DA ce qui pourrait expliquer qu'au final la liste soit vide non ?

Après, j'ai l'impression qu'il y a beaucoup de nettoyage, mais les variables qui concernent les nom de sous-dossiers DA ou les noms de fichier n-y sont plus.

Je ne sais pas si tu arriveras à comprendre le soucis car je passe peut-être à côté de choses importantes :-(

Je dois filer,

Merci 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
26 sept. 2012 à 15:41
l'arborecence n'a rien à voir là dedans
dans ton post #134 fichier cs-id07-retour.xls
A la fin de mon test en pas à pas, j'ai remarqué que la liste s'était incrémentée dans la colonne K (alors qu'en automatique ça ne marche pas ... bizarre !!!)
tu as bien vu passer la liste des dossiers DA et les bons numéros de lignes (li = 2, 3 ...) de la colonne K
il était normal que le choix d'un de ces dossiers DA ne produise pas la liste des txt
il aurait fallu aussi l'exécuter pas a pas avec un point d'arret dansz la procedure lister_fichiers pour l'obtenir

je pense qu'il y a un pb au niveau de l'accès à la feuille Listing

on revient sur la version 08.xls
dans les deux procedures Lister_DossierDA et Lister_fichiers
tu mets un point d'arret devnat repertoire =

tu effaces à la main les données de la feuille Listing
feuille saisie - dossier de travail - ici ça marchait bien pour la liste des dates (tu controles)
feuille saisie - dossier date - çà lance le pas a pas - tu vérifies les nf et les li jusqu'au bout
tu vois si la liste des DA est affichée dans la feuille Listing comme #134
feuille saisie - dossier DA - idem pour les fichiers txt

si tout va bien
feuille saisie - la liste des txt est elle proposée
si oui tu tentes une choix-puis une importation

tu dis

RQ. on est en train d'exploser le nombre de réponses
on va continuer avec les messages personnels (en haut à droite à coté de ton identifiant)
0