Nono64 Posté(e) le 9 novembre 2007 Posté(e) le 9 novembre 2007 Suite à la recherche précedemment faite pour envoyer des infos d'Autocad vers Excel, j'ai un nouveau soucis.Les infos que je veux envoyer sur Excel sont très souvent voire uniquement des nombres.Or lorsque l'on calcule une surface ou un périmètre d'une polyligne, il est très rare que la valeur soit exacte.Le problème vient lorsque l'on transvase cette valeur sur Excel, car la symbolisation de la virgule est différente entre Autocad (où un nombre sera écrit 10.5) et Excel (où le même nombre aurait été écrit 10,5).Etant donné que je souhaite me servir de cette valeur pour ensuite faire des calculs, il faut qu'Excel considère bien que la valeur est un nombre sur lequel il peut faire des opérations et non une chaîne de caractères. Ma question est donc la suivante : est-ce que quelqu'un aurait une petite routine permettant de transformer le point en virgule dans un nombre avant de le transférer sur Excel ?Merci d'avance. Arno
(gile) Posté(e) le 9 novembre 2007 Posté(e) le 9 novembre 2007 Salut, Tu peux utiliser la fonction vl-string-translate : (vl-string-translate "." "," "25.4") > 25,4 Mais je pense qu'il est plus pratique de changer le séparateur décimal dans Windows : Panneau de configuration > Options régionales et linguistiques > Personnaliser... > Symbole décimal tu choisis le point.Tu pourras ainsi utiliser le pavé numérique dans Excel de la même manière que dans AutoCAD. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
sechanbask Posté(e) le 9 novembre 2007 Posté(e) le 9 novembre 2007 dans Excel tu peux indiquer dans les options si tu souhaite utiliser le séparateur décimale de windows ou en changer. cette option est disponible dans l'onglet internationnal... Le problème pour nous français et adepte de la normalisation du système internationnal est que c'est limite inutilisable pour la saisie au clavier... J'ai eu un logiciel de dimensionnement qui refuser de marcher car il ne supportait pas les "," car il considérait les chiffres qui en usaient comme nul, alors pour faire des division avec.... ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Nono64 Posté(e) le 9 novembre 2007 Auteur Posté(e) le 9 novembre 2007 Merci à vous 2, (Gile) j'ai testé ton idée de changement dans les panneaux de configuration et effectivement ca marche nikel, je pourrais donc arrêter ma recherche là, mais je voudrai aussi trouver la solution avec une routine lisp.C'est pourquoi j'ai tout de même essayé ta ligne de code : (vl-string-translate "." "," "25.4") > 25,4, qui fonctionne très bien lorsque le terme à changer est une constante. En revanche, dans mon cas, c'est une variable donc ma ligne serait : (vl-string-translate "." "," "nom_variable") sauf que la ca ne marche pas.Pourrais-tu m'aiguiller un peu plus stp ?Encore merci. Arno
didier Posté(e) le 9 novembre 2007 Posté(e) le 9 novembre 2007 hello pour quoi chercher une routine pour ce qui existe déjà dans les commandes AutoCad ?Commande FINDremplacer dans tout le dessin... amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
Nono64 Posté(e) le 9 novembre 2007 Auteur Posté(e) le 9 novembre 2007 Salut Didier,je suis d'accord avec toi et je connais déjà cette commande, effectivement super pratique lorsqu'il s'agit de modifier un texte ou autre présent de nombreuses fois sur l'espace objet.Sauf que dans le cas présent la valeur est "virtuelle" puisqu'elle est mesurée.Par exemple je mesure l'aire du polyligne et je veux enregistrer directement cette valeur dans une case précise d'un fichier Excel, valeur qui rentre dans une série de calcul pour ensuite me donner volume, ...La commande Find ne me permet pas de modifier quelque chose qui n'existe pas "physiquement" et la valeur rentrée dans mon tableau sera considérée comme une chaîne de caractères ... Dis-moi si je me trompe, ou alors c'est que je ne sais pas me servir totalement de cette commande.
(gile) Posté(e) le 9 novembre 2007 Posté(e) le 9 novembre 2007 didier, Je pense que tu n'as pas compris la demande, il s'agit de passer des valeurs numériques contenues dans des variables à Excel en utilisant un LISP. Nono64, La fonction vl-string-translate fonctionne avec des chaînes de caractères (string). Si ta variable renferme un nombre réel, il faut d'abord la transformer en chaîne avec la fonction rtos (c'est là qu'on peut perdre un peu de précision) Exemple : (setq val 123.123456789) > 123.123 (la précision est conservée, seul l'affichage est altéré)(setq str (rtos val 2 9)) > "123.123456789" (le 9 force le nombre de décimales)(vl-string-translate "." "," str) > "123,123456789" Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant