Aller au contenu

Calcul surface + excel


mattttth23

Messages recommandés

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...

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é