Aller au contenu

[RESOLU] Exporter des surfaces


Hydro8

Messages recommandés

Bon j'ai du mal me débrouiller, cela fonctionne bien ! Merci beaucoup pour ton travail !

 

Concernant le MTEXT, la première ligne a bien sûr un formatage spécial :rolleyes:

 

La ligne apparaît : {\fTahoma|b1|i0|c0|p34;\H3x;7f1\fTahoma|b0|i0|c0|p34;

 

Vu que c'est tout le temps le même formatage, on peut imaginer supprimer "{\fTahoma|" et "|i0|c0|p34;\H3x;7f1\fTahoma|b0|i0|c0|p34;" ou cela ne fonctionnerait pas ?

Lien vers le commentaire
Partager sur d’autres sites

C'est un peu trop incertain pour être honnête...il suffit d'une différence pour que cela ne fonctionne pas..

 

Est-ce une obligation que le texte soit en gras ?

De plus la taille de la police est forcée, y a-t-il une raison ?

 

Selon le formatage il est possible de démarrer au ";" mais cela ne fonctionne que dans certains cas particuliers, ce qui n'est pas le tien.

 

On peut éventuellement ajouter

(setq str (vl-string-left-trim "{\fTahoma|b1|i0|c0|p34;\H3x;7f1\fTahoma|b0|i0|c0|p34;" str))

et ajouter le "}" pour la recherche du "\\P" au besoin.

 

Bisous,

Luna

Lien vers le commentaire
Partager sur d’autres sites

Hello SVP ton DWG et ton Lisp actuel en ZIP !? Merci, La Sante, Bye, lecrabe "fatigue"

 

J'envoi ça demain :)

 

C'est un peu trop incertain pour être honnête...il suffit d'une différence pour que cela ne fonctionne pas..Est-ce une obligation que le texte soit en gras ?De plus la taille de la police est forcée, y a-t-il une raison ?Selon le formatage il est possible de démarrer au ";" mais cela ne fonctionne que dans certains cas particuliers, ce qui n'est pas le tien.On peut éventuellement ajouter

(setq str (vl-string-left-trim "{\fTahoma|b1|i0|c0|p34;\H3x;7f1\fTahoma|b0|i0|c0|p34;" str))

et ajouter le "}" pour la recherche du "\\P" au besoin.Bisous,Luna

 

A quelle endroit devrait-on modifier la variable str ? J'ai essayé différent endroit notamment quand on recherche \P mais cela ne change rien ou provoque une erreur.

Lien vers le commentaire
Partager sur d’autres sites

Le soucis vient du fait que SI le programme supprime le formatage (si formatage il y a plus exactement), alors il faut s'arrêter à "}\\P" et non "\\P" uniquement.

 

Bref la gestion des formatages en MTEXT peut s'avérer délicat en fonction du dessin (et du dessinateur/dessinatrice !)

donc je ferais une modification à partir de ton .dwg, mais sera du coup coincé dans un fonctionnement basé sur vos pratiques.

Donc si vous changez vos pratiques (même ponctuellement) le programme ne sera plus fonctionnel.

Lien vers le commentaire
Partager sur d’autres sites

Salut Luna,

Pour les formatages de MText , connais-tu stripmtext ?

site original

ma version de stripmtext

Dans ma version j'ai juste fait une modif pour extraire en Lisp la chaine sans le formatage:

usage type:

(stripformat
	 (vla-get-TextString
	   (pw_to_object etxt)
	 )
	 "*"
       )

a+

gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Coucou GEGEMATIC,

 

non je ne connaissais absolument pas et cela à l'air vraiment intéressant pour le coup ! Je m'étais déjà penchée sur l'écriture du formatage mais par manque de documentation sur le sujet (et de temps surtout) j'ai laissé cela de côté...

Cela paraît être une excellente solution pour convertir les textes formatés avant l'exécution de la commande SURFAREA pour éviter tout problème avec la version originale et si je comprends bien, ta version permet d'extraire le texte réel sans modifier l'objet "MTEXT" ?

 

Autrement il est toujours possible de placer une Marque avec la commande ANNULER, lancer la commande STRIPMTEXT pour purger les textes, lancer SURFAREA et Retourner à la marque une fois le fichier .csv édité :3

J'utilise beaucoup cette fonctionnalité, chat dépanne bien souvent (et économise des crampes aux doigts ^^)

 

Merci Gégé !

Lien vers le commentaire
Partager sur d’autres sites

J ai meme un StripMText v5.0D ! ... Voir ZIP joint ...

Incroyable ce vieux Crabe, toujours un truc dans sa poche !

Franchement je ne pensais pas qu'il y avait une nouvelle version..

 

 

non je ne connaissais absolument pas et cela à l'air vraiment intéressant pour le coup ! Je m'étais déjà penchée sur l'écriture du formatage mais par manque de documentation sur le sujet (et de temps surtout) j'ai laissé cela de côté...

Cela paraît être une excellente solution pour convertir les textes formatés avant l'exécution de la commande SURFAREA pour éviter tout problème avec la version originale et si je comprends bien, ta version permet d'extraire le texte réel sans modifier l'objet "MTEXT" ?

J'avais commencé a réfléchir à mon propre "stripmtext", et franchement, devant l’ampleur de la tache, même en utilisant les expression régulières, j'avais renoncé.

Puis j'ai découvert cet excellent Lisp de Joe Burcke,

Il est bien codé avec les expression régulières, et pour moi il a toujours marché

(or
     (vl-bb-ref '*REX*)
     (vl-bb-set '*REX* (vlax-create-object "VBScript.RegExp"))
   )

la seule chose que j'ai fait, c'est bien d'en faire une commande Lisp

qui extrait le texte sans toucher à l'original, car c'était mon besoin.

a+, gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Voici le zip avec les fichiers actuels. J'ai mis deux MTEXT qu'on utilise, le format reste le même, seul le numéro change et les XXX sont remplacés.

 

Merci GEGEMATIC pour cette fonction ! Il faut que je prenne le temps de l'essayer, en gros je récupère le texte d'un MTEXT sans tout le formatage ? Très intéressant !

Lisp.zip

Lien vers le commentaire
Partager sur d’autres sites

Bien que je pense que Luna a bien avancé sur ta demande, je vais faire part de 2 routines que j'avais publier sur un forum US, bien que pas adapté à tes désirs ça peut donner des idées....

 

La première pour fixer les données et la deuxième pour l'export vers Excel.

 

(vl-load-com)
(defun c:ROOM_DATA ( / AcDoc Space old_lay sel ent vla_obj)
 (setq
AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
Space
(if (= 1 (getvar "CVPORT"))
 	(vla-get-PaperSpace AcDoc)
 	(vla-get-ModelSpace AcDoc)
)
 )
 (cond
((null (tblsearch "LAYER" "AREA_ROOM"))
 	(vlax-put (vla-add (vla-get-layers AcDoc) "AREA_ROOM") 'color 3)
)
 )
 (setq old_lay (getvar "CLAYER"))
 (setvar "CLAYER" "AREA_ROOM")
 (setq pt (getpoint "\nFirst point of polyline or enter for select one: "))
 (if pt
(command "_.pline" pt
 	(while (not (zerop (getvar "cmdactive")))
   	(command pause)
 	)
)
(while (not (setq sel (ssget "_+.:E:S" '((0 . "*POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 120) (-4 . "NOT>"))))))
 )
 (cond
(sel
 	(setq
   	ent (ssname sel 0)
   	vla_obj (vlax-ename->vla-object ent)
 	)
 	(vlax-put-property vla_obj "Layer" "AREA_ROOM")
)
(T (setq ent (entlast) vla_obj (vlax-ename->vla-object ent)))
 )
 (vlax-ldata-put vla_obj "ROOM_NAME" (getstring T "\nName of room : "))
 (vlax-ldata-put vla_obj "ROOM_AREA" (vlax-get-property vla_obj "Area"))
 (vlax-ldata-put vla_obj "ROOM_PERIMETER" (vlax-get-property vla_obj "Length"))
 (vlax-ldata-put vla_obj "ROOM_FLOOR" (getstring T "\nFloor of room : "))
 (setvar "CLAYER" old_lay)
 (princ "\nPolyline have this data:")
 (print (vlax-ldata-list vla_obj))
 (prin1)
)

(defun c:ROOM_DATA_OUT ( / sel output doc xls wks column nb ename k_list count)
 (setq
sel (ssget "_X" '((0 . "*POLYLINE") (8 . "AREA_ROOM") (-4 . "<NOT") (-4 . "&") (70 . 120) (-4 . "NOT>")))
file_output (strcat (getvar "DWGPREFIX") (substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4)) ".xlsm")
 )
 (cond
((and sel file_output)
 	(setq doc (vla-get-activedocument (vlax-get-acad-object)))
 	(vla-startundomark doc)
 	(setq xls (vlax-get-or-create-object "Excel.Application"))
 	(vlax-invoke (vlax-get xls 'workbooks) 'Add)
 	(vlax-put xls 'Visible :vlax-true)
 	(setq
   	wks (vlax-get xls 'ActiveSheet)
   	column 65
   	count 1
 	)
 	(vlax-put (vlax-get-property wks 'range (strcat "A1:E" (itoa (sslength sel)))) 'Cells "")
 	(foreach el '("HANDLE" "ROOM_NAME" "ROOM_FLOOR" "ROOM_PERIMETER" "ROOM_AREA")
   	(vlax-put (vlax-get-property wks 'range (strcat (chr column) (itoa count))) 'value el)
   	(setq column (1+ column))
 	)
 	(repeat (setq nb (sslength sel))
   	(setq
     	ename (ssname sel (setq nb (1- nb)))
     	k_list (list (cons "HANDLE" (strcat "'" (cdr (assoc 5 (entget ename))))))
   	)
   	(foreach el '("ROOM_NAME" "ROOM_FLOOR" "ROOM_PERIMETER" "ROOM_AREA")
     	(setq k_list (cons (cons el (vlax-ldata-get ename el)) k_list))
   	)
   	(setq
     	count (1+ count)
     	column 65
   	)
   	(foreach el (reverse (mapcar 'cdr k_list))
     	(vlax-put (vlax-get-property wks 'range (strcat (chr column) (itoa count))) 'value el)
     	(setq
       	column (1+ column)
     	)
   	)
   	(setq k_list nil)
 	)
 	(mapcar 'vlax-release-object (list wks xls))
 	(gc)
 	(vla-endundomark doc)
)
 )
 (prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

 

Petite remarque : dans ton .dwg tu sembles exclure des poteaux des surfaces en faisant un décroché de ton contour et ainsi tu as plusieurs fois le même sommet dans ta polyligne (à l'aller et au retour). Cette configuration génère bien souvent des erreurs pour les sélections d'objets sous forme de fenêtres ou de captures. La fonction (ssget) est alors incapable de déterminer une emprise et se résulte par la sélection d'aucun objet.

 

Ainsi tu as tes terrasses (ou jardins) qui sont exportés en surface mais sans aucun nom associé à la surface. Donc rien de grave étant donné que la surface est tout de même exportée mais les noms, eux, ne pourront pas être exportés. Il existe la solution au pire de ne séparer les sommets d'aller des sommets du retour par un espace d'1mm voire moins pour ne pas perturber AutoCAD :3

 

Bon du coup j'ai ajouté la fabuleuse fonction proposée par GEGEMATIC (et je sens que je vais y passer des heures pour la décortiquer de mon côté, merci Gégé !) au fichier de SurfArea que je te transmet ci-joint. J'ai ajouté l'impression des résultats dans l'historique de commande afin de contrôler directement dans AutoCAD les valeurs associées au besoin (temps d'exécution identique).

 

J'ai testé sur ton .dwg et aucun problème apparent (mise à part l'exclusion des poteaux qui empêche l'export du nom des pièces), dis-moi si cette version te convient bien :3

 

Bisous,

Luna

SurfArea v1.1.0 26-02-2021 (Luna).lsp

Lien vers le commentaire
Partager sur d’autres sites

Bien que je pense que Luna a bien avancé sur ta demande, je vais faire part de 2 routines que j'avais publier sur un forum US, bien que pas adapté à tes désirs ça peut donner des idées....

Merci pour ces Lisps, ils vont me permettre d'en apprendre un peu plus :D

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

 

Petite remarque : dans ton .dwg tu sembles exclure des poteaux des surfaces en faisant un décroché de ton contour et ainsi tu as plusieurs fois le même sommet dans ta polyligne (à l'aller et au retour). Cette configuration génère bien souvent des erreurs pour les sélections d'objets sous forme de fenêtres ou de captures. La fonction (ssget) est alors incapable de déterminer une emprise et se résulte par la sélection d'aucun objet.

 

Ainsi tu as tes terrasses (ou jardins) qui sont exportés en surface mais sans aucun nom associé à la surface. Donc rien de grave étant donné que la surface est tout de même exportée mais les noms, eux, ne pourront pas être exportés. Il existe la solution au pire de ne séparer les sommets d'aller des sommets du retour par un espace d'1mm voire moins pour ne pas perturber AutoCAD :3

 

Bon du coup j'ai ajouté la fabuleuse fonction proposée par GEGEMATIC (et je sens que je vais y passer des heures pour la décortiquer de mon côté, merci Gégé !) au fichier de SurfArea que je te transmet ci-joint. J'ai ajouté l'impression des résultats dans l'historique de commande afin de contrôler directement dans AutoCAD les valeurs associées au besoin (temps d'exécution identique).

 

J'ai testé sur ton .dwg et aucun problème apparent (mise à part l'exclusion des poteaux qui empêche l'export du nom des pièces), dis-moi si cette version te convient bien :3

 

Bisous,

Luna

 

Alors là c'est super !

 

Pour le problème des poteaux, j'ai bien compris le truc, je vais voir comment on peut faire facilement de notre côté.

Pour les MTEXT, c'est top on va pouvoir l'utiliser dans plusieurs domaines :)

 

Une dernière chose, à quel endroit gère-t-on l'arrondi de la surface ?

Il faudrait que je rajoute une colonne "Surface arrondie" avant la colonne "Surface" avec les surfaces au décimètre.

 

Merci beaucoup luna ! Ca va être très utile :D :D

Lien vers le commentaire
Partager sur d’autres sites

Salut Luna,

bien content que ça t'ouvre des perspectives, et tu verra que les expressions régulières sont un outil indispensable dès qu'on veut avoir des traitements un peu "intelligents" des entrées utilisateurs ou des données.

Bon du coup j'ai ajouté la fabuleuse fonction proposée par GEGEMATIC

la vie est ainsi faite que, pour une fois qu'un Lisp que je propose crée autant d’enthousiasme,

et ben il est pas de moi !

 

mais je me fais pas de soucis, la relève est là !

a+

gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Un peu hors sujet, mais très utile lorsque regex n'est pas suffisant:

les fonction de similarité de texte par Giles:


;;************************************************************************
;;§/STR/définie le nombre minimal de caractères qu'il faut remplacer, insérer ou modifier pour transformer la chaîne $str1 en $str2/ $str1 $str2
;;La complexité de l'algorithme est en O(m*n), où n et m sont les tailles respectives de $str1 et $str2 :
;;c'est plutôt bien, en comparaison de similar_text(), qui est en O(max(n,m)**3), mais cela reste très coûteux.
;;http://cadxp.com/topic/46142-utiliser-une-fonction-php-avec-lisp/page__gopid__268839#entry268839
;;(C) Giles Chanteau

;;(LevenshteinDistance (strcase "str1") (strcase "Str2"))-> 1


(defun LevenshteinDistance (str1 str2 / lst1 lst2 len1 len2 matrix i j cost)
 (vl-load-com)
 (setq lst1 (vl-string->list str1)
       len1 (length lst1)
       lst2 (vl-string->list str2)
       len2 (length lst2)
 )
 (cond
   ((zerop len1) len2)
   ((zerop len2) len1)
 )
 (setq matrix (vlax-make-safearray vlax-vbInteger (cons 0 len1) (cons 0 len2)))
 (setq i 0)
 (repeat (1+ len1)
   (vlax-safearray-put-element matrix i 0 i)
   (setq i (1+ i))
 )
 (setq j 0)
 (repeat (1+ len2)
   (vlax-safearray-put-element matrix 0 j j)
   (setq j (1+ j))
 )
 (setq i 1)
 (repeat len1
   (setq j 1)
   (repeat len2
     (setq cost (if (= (nth (1- i) lst1) (nth (1- j) lst2))
                  0
                  1
                )
     )
     (vlax-safearray-put-element
       matrix
       i
       j
       (min (1+ (vlax-safearray-get-element matrix (1- i) j))
            (1+ (vlax-safearray-get-element matrix i (1- j)))
            (+ (vlax-safearray-get-element matrix (1- i) (1- j)) cost)
       )
     )
     (setq j (1+ j))
   )
   (setq i (1+ i))
 )
 (vlax-safearray-get-element matrix len1 len2)
)

;;************************************************************************
;;§/STR/donne le pourcentage de similarité entre 2 chaines de texte/str1 str2
;;http://cadxp.com/topic/46142-utiliser-une-fonction-php-avec-lisp/page__gopid__268839#entry268839
;;(C) Giles Chanteau
;;(Similarity (strcase "str1") (strcase "Str2"))-> 0.75
(defun Similarity (str1 str2)
 (- 1. (/ (float (LevenshteinDistance str1 str2)) (max (strlen str1) (strlen str2))))
)
;;************************************************************************
;;§/STR/donne le pourcentage de similarité entre 2 noms de fichier, sans prendre en compte ni le chemin ni l'extension/str1 str2
;;http://cadxp.com/topic/46142-utiliser-une-fonction-php-avec-lisp/page__gopid__268839#entry268839
;;(C) Giles Chanteau
;;(SimilarityFile (strcase "str1.pdf") (strcase "Str2.dwg"))-> 0.75
(defun SimilarityFile (str1 str2)
 (setq str1 (vl-filename-base str1)
str2 (vl-filename-base str2)
)
 (- 1. (/ (float (LevenshteinDistance str1 str2)) (max (strlen str1) (strlen str2))))
)

;;************************************************************************
;;§/STR/donne le pourcentage de similarité entre 2 chaines de texte/str1 str2
;;http://cadxp.com/topic/46142-utiliser-une-fonction-php-avec-lisp/page__gopid__268839#entry268839
;;(C) Giles Chanteau
;;(similartext (strcase "str1") (strcase "Str2"))

(defun similartext (str1 str2 / similarStr similarSum lst1 lst2)

 (defun similarStr (begin1 len1 begin2 len2 / pos1 pos2 len end1 end2 p q r pr qr isEqual)
   (setq pos1 begin1)
   (setq pos2 begin2)
   (setq len 0)
   (setq end1 (+ begin1 len1)
         end2 (+ begin2 len2)
   )
   (setq p begin1)
   (repeat len1
     (setq q begin2)
     (repeat len2
       (setq r 0
             pr p
             qr q
             isEqual T
       )
       (while (and (< pr end1)
                   (< qr end2)
                   isEqual
              )
         (if (= (nth pr lst1) (nth qr lst2))
           (setq r (1+ r))
           (setq isEqual nil)
         )
         (setq pr (1+ pr)
               qr (1+ qr)
         )
       )
       (if (< len r)
         (progn
           (setq len r)
           (setq pos1 p)
           (setq pos2 q)
         )
       )
       (setq q (1+ q))
     )
     (setq p (1+ p))
   )
   (list pos1 pos2 len)
 )

 (defun similarSum (begin1 len1 begin2 len2 / lst pos1 pos2 len sum e1 e2)
   (setq lst  (similarStr begin1 len1 begin2 len2)
         pos1 (car lst)
         pos2 (cadr lst)
         len  (caddr lst)
   )
   (setq sum len)
   (if (/= sum 0)
     (progn
       (if (and (< begin1 pos1) (< begin2 pos2))
         (setq sum (+ sum (similarSum begin1 (- pos1 begin1) begin2 (- pos2 begin2))))
       )
       (setq e1 (+ pos1 len)
             e2 (+ pos2 len)
       )
       (if (and (< e1 (+ begin1 len1)) (< e2 (+ begin2 len2)))
         (setq sum (+ sum (similarSum e1 (+ len1 begin1 (- e1)) e2 (+ len2 begin2 (- e2)))))
       )
     )
   )
   sum
 )

 (setq lst1 (vl-string->list str1)
       len1 (length lst1)
       lst2 (vl-string->list str2)
       len2 (length lst2)
 )
 (if (= 0 (+ len1 len2))
   '(0 0.0)
   (list
     (setq similar (similarSum 0 len1 0 len2))
     (/ (* similar 200.) (+ len1 len2))
   )
 )
)

Aujourd'hui je suis étonné que beaucoup de programmateur web ne prennent même plus la peine d'utiliser un applet pour corriger un numéro de téléphone ou un code INSEE

Il m'arrive souvent d'être face à une page qui refuse de valider, bien entendu sans aucun message intelligible, parcequ'il y a un espace devant le numéro ...

a+

gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

 

Hydro8

Une dernière chose, à quel endroit gère-t-on l'arrondi de la surface ?

 

Il s'agit du second 2 à chaque (rtos), par exemple pour celui-ci

(rtos (apply '+ (mapcar 'cadr y)) 2 2)

on peut isoler les 3 arguments comme suit :

(rtos
     (apply '+ (mapcar 'cadr y)) ;; le nombre réel que l'on souhaite convertir sous format texte
     2                           ;; l'écriture que l'on souhaite appliquer lors de la conversion (ici le 2 correspond à l'écriture décimale)
     2                           ;; la précision (donc ici on oblige à écrire le nombre avec 2 décimales après la virgule)
)

La surface est située au (cadr y) ou (cadr r) tandis que le périmètre est situé au (caddr y) ou (caddr r) ou si tu préfères les virgules servent de séparateurs pour le fichier .csv donc tu as :

Nom , Surface , Périmètre

Donc si tu repères les virgules, la surfaces correspond aux (rtos) situés entre les deux virgules :3

 

Il est possible de supprimer la précision (pour ne pas la forcer) afin que seule la précision indiquée dans le format du dessin (cf. variable système LUPREC, ou Format > Contrôle des unités... > Longueur "Précision") soit prise en compte.

Les arrondis se font automatiquement lors de la conversion du nombre en texte en fonction de la précision indiquée. Par exemple :

(rtos 2 2 2) renvoie "2.00"
(rtos 2.01536484529 2 3) renvoie "2.015"
(rtos 2.6131861 2 0) renvoie "3"
(rtos 2.1536 2) renvoie "2.1536"

 

Pour simplifier la modification du code, il est possible de remplacer cette valeur 2 à chaque occurrence par une seule variable et de définir cette nouvelle variable en dur en début de programme (pour n'avoir à la modifier qu'à un seul endroit).

 

GEGEMATIC

bien content que ça t'ouvre des perspectives, et tu verra que les expressions régulières sont un outil indispensable dès qu'on veut avoir des traitements un peu "intelligents" des entrées utilisateurs ou des données.

Vouih, je les avais également vu passer lorsque j'avais eut un soucis avec la fonction (vl-sort) et (gile) l'avait évoqué également mais je n'ai pas vraiment eut le temps d'étudier le programme (et surtout la moitié du programme utilise des fonctions que je ne connais pas donc la lecture est d'autant plus complexe et longue) mais je me rend bien compte qu'il va bien falloir que je passe par là si je veux continuer à progresser :3 (et accessoirement aussi parce que je refuse d'utiliser un programme sans savoir pourquoi et comment chat marche >w<)

Donc merci beaucoup pour m'avoir partagé cela et vraiment désolée si tu ne peux pas t'attribuer tout le mérite, promis je montrerais plus d’enthousiasme sur tes partages de fonctions à l'avenir <3

 

Bisous,

Luna

Modifié par Luna
Lien vers le commentaire
Partager sur d’autres sites

J'avoue ne pas bien comprendre la demande pour le coup... l'arrondi c'est juste une question de décimale donc qu'elle différence existe-t-il entre la colonne "Surface arrondie" et "Surface" mise à part le nombre de décimales après la virgule ?

Et du coup quel est l'intérêt d'avoir une colonne avec 1 décimales et une autre avec 2 ? L'export est strictement identique, on ne fait qu'écrire deux fois la même chose donc il est plus simple de modifier cela directement sur Excel, nan ?

 

Bisous,

Luna

Lien vers le commentaire
Partager sur d’autres sites

Effectivement cela est réalisable en faisant des manipulations sur Excel, c'était histoire de gagner du temps :)

 

En gros il affiche les surfaces à 2 décimales et les surfaces arrondies à 1 décimale pour chaque pièce.

Pour la somme, fait-il la somme des surfaces à 2 décimales ? J'imagine que oui.

 

 

Du coup cette somme arrondie n'est pas forcément égale à la somme des arrondis.

 

Par exemple, la surface de l'appartement me donne 40.48m² donc son arrondi donne 40.5.

La somme des arrondis des pièces me donne 40.4.

Je sais donc que j'ai 0.1m² à compenser quelque part.

 

L'idée était d'afficher dans une troisième colonne ce calcul afin que cela soit déjà fait :(rires forts):

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant



×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité