mattttth23 Posté(e) le 26 juin 2007 Posté(e) le 26 juin 2007 Bonjour! Voila, j'ai créé un programme pr calculer une surface sur autocad mais je voudrai enregistrer le résultat SOUS un fichier excel deja existant.Si quelqu'un a une idée Merci!
Bred Posté(e) le 26 juin 2007 Posté(e) le 26 juin 2007 Salut,en lisp tu as cette manière. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
mattttth23 Posté(e) le 26 juin 2007 Auteur Posté(e) le 26 juin 2007 salut et merci pr la reponse, juste comment lancer cette routine?!(defun lancer_excel... ) y doit pas y avoir c: ?
Patrick_35 Posté(e) le 26 juin 2007 Posté(e) le 26 juin 2007 SalutLe lien que t'a donné Bred sont les bases pour programmer et travailler avec ExcelIl va falloir aller plus loin en lisp ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 26 juin 2007 Posté(e) le 26 juin 2007 Alors, les routines : ; [b]Lancer une liaison avec Excel[/b] - (defun lancer_excel (vis / sel) (setq xl (vlax-get-or-create-object "Excel.Application")) (setq wks (vlax-get xl 'Workbooks)) (vlax-for sel wks (setq liste_fichiers_ouvert (append liste_fichiers_ouvert (list (strcase (vlax-get sel 'fullname))))) ) (if (equal vis 0) (vla-put-visible xl :vlax-False) (vla-put-visible xl :vlax-True) ) ) ;;; [b]Ouverture Excel + Nom de feuille puis 1 = visible, 0 = invisible -> (XL-Ouv-Feuill "chemin fichier" "Nom de feuille") -[/b] (defun XL-Ouv-Feuill (Chem-fich Nom_feuil vis) [b](lancer_excel vis)[/b] (setq xl-fichier (vlax-invoke wks 'open Chem-fich)) (setq xl-classeur (vlax-get xl-fichier 'sheets)) (setq x 1) (repeat (vlax-get-property xl-classeur 'Count) (if (equal (vlax-get (vlax-get-property xl-classeur 'item x) 'name) Nom_feuil) (setq xl-feuille (vlax-get-property xl-classeur 'item x)) (setq x (+ x 1)) ) ) (vlax-invoke-method xl-feuille 'Activate) ) ;;; [b]Choix Cellule dans Excel - Ecriture Texte ->[/b] (XL-Put-Txt-Cell "Texte" "C4") - (defun XL-Put-Txt-Cell (Txt Cell) (vlax-put (vlax-get-property xl-feuille 'range Cell)'value2 Txt) ) ;;; [b]Choix de Cellule dans Excel (liste) - Lire Cellule ->[/b] (XL-Get-Val-Cell '("B1" "C4")) - ;;; -> Retourne liste résultat - (defun XL-Get-Val-Cell (lst-Cell / x) (setq x 0 lst-val nil) (repeat (length lst-Cell) (setq lst-val (append lst-val (list (vlax-get (vlax-get-property xl-feuille 'range (nth x lst-Cell)) 'value2))) x (+ x 1)) ) lst-val ) [b]; Fermer la liaison avec Excel[/b] (defun XL-Close (/ ok sel) (if (not (member (strcase (vlax-get xl-fichier 'fullname)) liste_fichiers_ouvert)) (vlax-invoke-method xl-fichier 'close :vlax-false) ) (if liste_fichiers_ouvert (vla-put-visible xl :vlax-True) ) (foreach sel (list xl wks xl-fichier xl-classeur xl-feuille) (vlax-release-object sel) ) (setq xl nil wks nil xl-fichier nil xl-classeur nil xl-feuille nil) (gc)(gc) ) ) Donc, normalement pour écrire dans une cellule :(je vais ça à la volée, donc à vérifier) (defun c:write-cell () (XL-Ouv-Feuill (findfile "C:\\mon-rep\\mon-fichier.xls") "Onglet" 0) ; ouvrir mon-fichier - choix onglet - 0 = arrière plan (1 pour ouvrir) (XL-Put-Txt-Cell "Texte" "C4") ;écrire "texte dans C4 (XL-Close) ; fermer Excel (princ) ) [Edité le 26/6/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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