Aller au contenu

Messages recommandés

Posté(e)

j'aimerais savoir si quelqu'un aurait la possiblilité de me fournir un Lisp qui permettrait de définir le version d'excel installer, puis d'ouvrir un fichier excel nommer (soit par pointage, soit ce lisp serait implémenter dans un autre lisp qui donnerait le chemin et le nom du fichier en paramétre.

Posté(e)

Salut,

Venant de ce forum (désolé je ne sais plus qui en est l'auteur... il n'aura qu'a ce faire connaitre... je pencherais pour Patrick_35.... non ?)

si tu fais une recherche tu trouveras certainement l'original

 

Version d'Excel :

 

 !lisp qui détermine le fichier pour faire une liaison avec excel et qui donne sa version
;!Un (car (Liaison_Excel)) retourne le Fichier pour faire la liaison
;!un (cadr (Liaison_Excel)) retourne la version d'excel

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; Nom variable chemin = Chemin_Excel   ;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun Excel_Version() 
(if (setq Chemin_Excel (vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE" "Path"))
 	(progn
 		(foreach Environ (list "SYSTEMROOT" "WINDIR" "WINBOOTDIR" "SYSTEMDRIVE" "USERNAME" "COMPUTERNAME" "HOMEDRIVE" "HOMEPATH" "PROGRAMFILES")
 			(if (vl-string-search (strcat "%" Environ "%") Chemin_Excel)
 				(setq Chemin_Excel (vl-string-subst (strcase (getenv Environ)) (strcat "%" Environ "%") Chemin_Excel))))
 		(if (= (vl-string-elt Chemin_Excel (1- (strlen Chemin_Excel))) 92)
			(setq Chemin_Excel (strcat Chemin_Excel "Excel.exe"))
 			(setq Chemin_Excel (strcat Chemin_Excel "\\Excel.exe")))
		(cond
			((findfile (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel))
				(setq Chemin_Excel (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel)))
			((findfile (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel))
				(setq Chemin_Excel (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel)))
			((findfile (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))
				(setq Chemin_Excel (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))))
		(cond
			((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE11")	(setq Version_Excel "2003"))
			((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE10")	(setq Version_Excel "XP"))
			((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL8")					(setq Version_Excel "97"))
			((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL9")					(setq Version_Excel "2000")))
 		(if (not Version_Excel)	(setq Chemin_Excel nil))
)	)	)

 

pour "discuter" avec Excel :

 

 ;Un exemple pour lire/ecrire des valeurs dans Excel depuis Autocad

;Pour activer les fonctions visual-lisp
(vl-load-com) 



;Lancer Excel
(setq xl (vlax-get-or-create-object "Excel.Application"))
(vlax-import-type-library
:tlb-filename "C:/Program Files/Microsoft Office/Office/Excel8.olb"
:methods-prefix "xl-"
:properties-prefix "xlp-"
:constants-prefix "xlc-")
(setq xl_wks (vlax-get xl "Workbooks")) 



;Ouvrir le fichier test.xls sur la racine du c, ou sinon, l'active dans Excel
(setq xl_fichier (xl-open xl_wks "c:\\test.xls")) 



;Rendre Excel visible
(vla-put-visible xl 1) 



;Choisir la feuil1 du classeur
(setq xl_classeur (vlax-get xl_fichier "Sheets"))
(setq xl_feuille (xlp-get-item xl_classeur "feuil1")) 



;Choisir la cellule A10 de la feuille
(setq rng (xlp-get-range xl_feuille "A10")) 



;Lire la valeur dans la cellule et la mettre dans la variable valeur
(setq valeur (vlax-variant-value (xlp-get-value rng))) 



;Ecrire une valeur dans la cellule
(xlp-put-value rng "VALEUR A ECRIRE") 



;Copier la feuil1
(setq xl_feuille (xlp-get-item xl_classeur "feuil1"))
(setq xl_dernier xl_feuille) ; xl_dernier=xl_feuille par défaut
(xl-copy xl_feuille xl_dernier) ; si :vlax-true, ça s'est bien passé 



;Déplacer la feuille copié
(setq xl_deplace (xlp-get-item xl_classeur "feuil1 (2)"))
(xl-move xl_feuille xl_deplace) ; si :vlax-true, ça s'est bien passé 



;Renommer la feuille feuil1 (2) en TEST
(xlp-put-name xl_deplace "TEST") 



;Sauvegarder le fichier Test1.xls sur la racine du c
(xl-saveas xl_feuille "c:\\Test1.xls"); si :vlax-true, ça s'est bien passé  



;Fermer le fichier
(xl-close xl_wks) 

 

[Edité le 30/8/2006 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Tu peux aussi lire un fichier Excel à blanc en l'ouvrant bêtement en lisp et faisant des read-line.

Mais tu n'as accès qu'à la première feuille.

 

Voir ce fameux sujet.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)
désolé je ne sais plus qui en est l'auteur... il n'aura qu'a ce faire connaitre... je pencherais pour Patrick_35.... non ?

 

... et bien voilà!!! il c'est dénoncé !!!!

 

.... et moi j'ai gagné !!! .....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Voila mon programme mis à jour en fonction de vos remarques mais un probléme persiste :

[surligneur] ; erreur: type d'argument incorrect: VLA-OBJECT nil[/surligneur]

 

Je ne vois pas le probléme.

 

 
;; ------------------------------------------------------------------------------------------------------------------------
;; Programme principale pour l'exportation d'attributs de blocs
;; ------------------------------------------------------------------------------------------------------------------------
(defun c:XL (/ OldCmd dcl_id)
   (setq OldCmd (getvar "CMDECHO")
         dcl_id (load_dialog "ERAS-EL.dcl"))
   (setq nom "")
   (setvar "CMDECHO" 0)
   ;; Création de la boite
   (new_dialog "export" dcl_id)
   ;; Fonction d'appel en retour
   (action_tile "about" "(c:about)")
   (action_tile "helpexpt" "(helpexpt)")
   (action_tile "cancel" "(done_dialog 0)")
   (action_tile "accept" "(do_accept)")
   (action_tile "saisie" "(saisie)")
   ;; Affichage de la boite
   (setq What_next (start_dialog))
   (if (= What_next 2)
       (progn
           ;; Exportation des attributs
           (if (= EXPORT "Filerie")
               (command
                   "-eattext" "dwgCourant" "Non" "Non"
                   "w:\\technique\\autocad\\Symboles DAO 2003\\REPERE FIL CABLE\\FIL.blk"
                   "Xls" nom))
           (if (= EXPORT "Cable")
               (command
                   "-eattext" "dwgCourant" "Non" "Non"
                   "w:\\technique\\autocad\\Symboles DAO 2003\\REPERE FIL CABLE\\CAB.blk"
                   "Xls" nom)))
       (setvar "CMDECHO" OldCmd))
   ;; Déchargement de la boite
   (unload_dialog dcl_id))
;;Pour activer les fonctions visual-lisp
(vl-load-com)
;; Pour Lancer la détermination de Version Excel
(Liaison_Xl)
;; Pour Ouvrir le fichier 'Nom'
(Open_Xl)
;; Fonction pour Saisie du nom et chemein du fichier xls
(defun saisie  ()
   (setq nom (getfiled "Nom du fichier excel à créer" "T:\\Export\\" "xls" 1))
   (set_tile "montexte" nom))
;; Fonction pour Récupération des informations de la boite DCL
(defun do_accept  ()
   (setq EXPORT (get_tile "export"))
   ;;(alert nom) 			;; pour débug afficher la valeur récupérée
   (if (= nom "")
       (alert "Saisissez le nom et le chemin du fichier d'exportation")
       (done_dialog 2)))
;; ------------------------------------------------------------------------------------------------------------------------
;; Fonction pour Affichage de la boite de dialogue d'aide Fct Export
(defun helpexpt  ()
   (new_dialog "helpexpt" dcl_id)
   (setq x (dimx_tile "logo")
         y (dimy_tile "logo"))
   (start_image "logo")
   (fill_image 0 0 x y -2)
   (slide_image 0 0 x y "ERAS")
   (end_image)
   (start_dialog))
;; ------------------------------------------------------------------------------------------------------------------------
;; Fonction pour Déterminer le version d'Excel Installer fichier pour faire une liaison avec excel et qui donne sa version
;; ------------------------------------------------------------------------------------------------------------------------
(defun Liaison_Xl (/ Chemin_Excel Environ Version_Excel)
   (if (setq Chemin_Excel
                (vl-registry-read
                    "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE"
                    "Path"))
       (progn
           (foreach Environ  (list "SYSTEMROOT" "WINDIR" "WINBOOTDIR" "SYSTEMDRIVE"
                                   "USERNAME" "COMPUTERNAME" "HOMEDRIVE" "HOMEPATH"
                                   "PROGRAMFILES")
               (if (vl-string-search (strcat "%" Environ "%") Chemin_Excel)
                   (setq
                       Chemin_Excel (vl-string-subst (strcase (getenv Environ))
                                                     (strcat "%" Environ "%")
                                                     Chemin_Excel))))
           (if (= (vl-string-elt Chemin_Excel (1- (strlen Chemin_Excel))) 92)
               (setq Chemin_Excel (strcat Chemin_Excel "Excel.exe"))
               (setq Chemin_Excel (strcat Chemin_Excel "\\Excel.exe")))
           (cond
               ((findfile (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel))
                (setq Chemin_Excel (vl-string-subst "Excel8.olb"
                                                    "Excel.exe"
                                                    Chemin_Excel)))
               ((findfile (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel))
                (setq Chemin_Excel (vl-string-subst "Excel9.olb"
                                                    "Excel.exe"
                                                    Chemin_Excel)))
               ((findfile (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))
                (setq Chemin_Excel (vl-string-subst "Excel10.olb"
                                                    "Excel.exe"
                                                    Chemin_Excel))))
           (cond
               ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel)))
                   "OFFICE11")
                (setq Version_Excel "2003"))
               ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel)))
                   "OFFICE10")
                (setq Version_Excel "XP"))
               ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL8")
                (setq Version_Excel "97"))
               ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL9")
                (setq Version_Excel "2000")))
           (if (not Version_Excel)
               (setq Chemin_Excel nil))))
   (list Chemin_Excel Version_Excel))
;; ------------------------------------------------------------------------------------------------------------------------
;; Fonction qui ouvre le fichier avec la version approprié d'excel
;; ------------------------------------------------------------------------------------------------------------------------
(defun Open_Xl  ()
   ;; Lancer Excel
   (setq xl (vlax-get-or-create-object "Excel.Application"))
   (vlax-import-type-library ;;:tlb-filename "C:/Program Files/Microsoft Office/Office/Excel8.olb"		;;Pour Excel 97
                             :tlb-filename "Chemin_Excel" :methods-prefix "xl-"
                             :properties-prefix "xlp-" :constants-prefix "xlc-")
   (setq xl_wks (vlax-get xl "Workbooks"))
   ;;Ouvrir le fichier test.xls sur la racine du c, ou sinon, l'active dans Excel
   (setq xl_fichier (xl-open xl_wks "nom"))
   ;;Rendre Excel visible
   (vla-put-visible xl 1))

Posté(e)

Salut,

après un rapide coup d'oeuil :

 

1 - tu met en varaible locale le chemin d'Excel.....

 (defun Liaison_Xl (/ Chemin_Excel Environ Version_Excel)
...

 

.... donc tu ne peux pas le rappeler dans (defun Open_Xl () ....

 

il faut simplement :

 (defun Liaison_Xl ()
...

 

2 - j'ai l'impression que tu fais une erreur quand tu rappels tes variables : tu les mets entre guillement... ce n'est alors plus une varaible mais un texte...

la routine Open_XL modifié :

 

 (defun Open_Xl ( [surligneur] Chemin_Excel nom[/surligneur])
;; Lancer Excel
(setq xl (vlax-get-or-create-object "Excel.Application"))
(vlax-import-type-library ;;:tlb-filename "C:/Program Files/Microsoft Office/Office/Excel8.olb" ;;Pour Excel 97
:tlb-filename  [b] Chemin_Excel[/b] :methods-prefix "xl-"
:properties-prefix "xlp-" :constants-prefix "xlc-")
(setq xl_wks (vlax-get xl "Workbooks"))
;;Ouvrir le fichier test.xls sur la racine du c, ou sinon, l'active dans Excel
(setq xl_fichier (xl-open xl_wks  [b] nom[/b]))
;;Rendre Excel visible
(vla-put-visible xl 1))

 

... mais je ne voie peut-être pas tout....

 

edit

-----------

et passer [surligneur] les aurguments [/surligneur]à OPen_Xl !!!! - corrigé ci-dessus-

 

[Edité le 31/8/2006 par Bred]

 

[Edité le 31/8/2006 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Merci pour ta réponse le programme fopnctionne correctement mis à part qu'AUtoCAD m'affiche une boite de dialogue qui me pose la quetion suivante :

Affectation à un symbole protégé :

xl-Acos

Voulez-vous entrer une boucle d'arrêt ?

et ceci pour une liste assée longue de symboles.

Posté(e)

Alors là je ne suis pas sûr, mais je crois que ça vient de l'éditeur visual lisp d'autocad (mais je n'en connait pas la raison).

Pour éviter ça je crois, il faut que tu ailles dans les OPtions / Options générales de l'éditeur visual et que tu testes les options proposés...

 

mais certainement que quelqu'un su forum ici présent sera plus apte qu emoi à t'expliqué les options exacts et le "pourquoi du comment" ....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

l'ensemble du programme fonctionne à un point prêt, c'est qu'il n'ouvre pas mon fichier excel. Je croit que l'appel de sous-fonction Liaison_Xl (que je conditionne pas un toggle) ne fonctionne pas mais je ne sais pas pourquoi ???

Ci-joint le programme Lsp et DCL

 

 // Exportation des attributs de blocs Filerie et/ou Câbles
export : dialog {
label = "Exportation Excel";
: boxed_radio_column {
	label = "1. Nom et Chemin du fichier Excel : ";
	: row {
		: text {
       			key = "montexte";
       			width = 30;}
       		: button {
       			label = "...";
       			key = "saisie";
       			alignment = right;}}
       	: toggle {
		label = "Ouverture du fichier Excel";
		key = "Ouverture";
		mnemonic = "O";}}
       : boxed_radio_row {
	label = "2. Attributs à exporter : ";
	key = "export";
	: radio_button {
		label = "Repéres de Fils";
		key = "Filerie";
		mnemonic = "F";
		value = "1";}
	: radio_button {
		label = "Repéres de Câbles";
		mnemonic = "C";
		key = "Cable";}}
: row {
      		ok_cancel;
       	: button {
       		key = "helpexpt";
       		label = "Aide";}}
       }

 

 

 ;;Pour activer les fonctions visual-lisp
(vl-load-com)

;; ------------------------------------------------------------------------------------------------------------------------
;; Programme principale pour l'exportation d'attributs de blocs
;; ------------------------------------------------------------------------------------------------------------------------
(defun c:Export_XL  (/ OldCmd dcl_id)
   (setq OldCmd (getvar "CMDECHO")
         dcl_id (load_dialog "ERAS-EL.dcl"))
   (setq nom "")
   (setvar "CMDECHO" 0)
   ;; Création de la boite
   (new_dialog "export" dcl_id)
   ;; Fonction d'appel en retour
   (action_tile "about" "(c:about)")
   (action_tile "helpexpt" "(helpexpt)")
   (action_tile "cancel" "(done_dialog 0)")
   (action_tile "accept" "(do_accept)")
   (action_tile "saisie" "(saisie)")
   (action_tile "Ouverture" "(setq Ouverture $value)")
   ;; Affichage de la boite
   (setq What_next (start_dialog))
   (if (= What_next 2)
       (progn ;; Exportation des attributs
              (if (= EXPORT "Filerie")
                  (command
                      "-eattext" "dwgCourant" "Non" "Non"
                      "w:\\technique\\autocad\\Symboles DAO 2003\\REPERE FIL CABLE\\FIL.blk" "Xls"
                      nom))
              (if (= EXPORT "Cable")
                  (command
                      "-eattext" "dwgCourant" "Non" "Non"
                      "w:\\technique\\autocad\\Symboles DAO 2003\\REPERE FIL CABLE\\CAB.blk" "Xls"
                      nom)))
       (setvar "CMDECHO" OldCmd))
   ;; Déchargement de la boite
   (unload_dialog dcl_id)
   ;; Ouverture du fichier
   (if (= "1" (get_tile "Ouverture"))
       (Liaison_Xl))
   )
;; Fonction pour Saisie du nom et chemin du fichier xls
(defun saisie  ()
   (setq nom (getfiled "Nom du fichier excel à créer" "T:\\Export\\" "xls" 1))
   (set_tile "montexte" nom))
;; Fonction pour Récupération des informations de la boite DCL
(defun do_accept  ()
   (setq EXPORT (get_tile "export"))
   ;(alert nom) 			;; pour débug afficher la valeur récupérée
   (if (= nom "")
       (alert "Saisissez le nom et le chemin du fichier d'exportation")
       (done_dialog 2)))
;; ------------------------------------------------------------------------------------------------------------------------
;; Fonction pour Affichage de la boite de dialogue d'aide Fct Export
(defun helpexpt  ()
   (new_dialog "helpexpt" dcl_id)
   (setq x (dimx_tile "logo")
         y (dimy_tile "logo"))
   (start_image "logo")
   (fill_image 0 0 x y -2)
   (slide_image 0 0 x y "ERAS")
   (end_image)
   (start_dialog))
;; ------------------------------------------------------------------------------------------------------------------------
;; Fonction pour Déterminer le version d'Excel Installer fichier pour faire une liaison avec excel et qui donne sa version
(defun Liaison_Xl  (/ Chemin_Excel Environ Version_Excel)
   (if (setq Chemin_Excel
                (vl-registry-read
                    "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE"
                    "Path"))
       (progn
           (foreach Environ  (list "SYSTEMROOT" "WINDIR" "WINBOOTDIR" "SYSTEMDRIVE" "USERNAME"
                                   "COMPUTERNAME" "HOMEDRIVE" "HOMEPATH" "PROGRAMFILES")
               (if (vl-string-search (strcat "%" Environ "%") Chemin_Excel)
                   (setq Chemin_Excel (vl-string-subst (strcase (getenv Environ))
                                                       (strcat "%" Environ "%")
                                                       Chemin_Excel))))
           (if (= (vl-string-elt Chemin_Excel (1- (strlen Chemin_Excel))) 92)
               (setq Chemin_Excel (strcat Chemin_Excel "Excel.exe"))
               (setq Chemin_Excel (strcat Chemin_Excel "\\Excel.exe")))
           (cond ((findfile (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel))
                  (setq Chemin_Excel (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel)))
                 ((findfile (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel))
                  (setq Chemin_Excel (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel)))
                 ((findfile (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))
                  (setq Chemin_Excel (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))))
           (cond
               ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE11")
                (setq Version_Excel "2003"))
               ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE10")
                (setq Version_Excel "XP"))
               ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL8")
                (setq Version_Excel "97"))
               ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL9")
                (setq Version_Excel "2000")))
           (if (not Version_Excel)
               (setq Chemin_Excel nil))))
   (list Chemin_Excel Version_Excel)
   ;(alert (strcat "Version Excel: " Version_Excel))		;;Pour Affichage d'un message
   ;Lancer Excel
   (setq xl (vlax-get-or-create-object "Excel.Application"))
   (vlax-import-type-library :tlb-filename Chemin_Excel :methods-prefix "xl-" :properties-prefix		;;Pour Toutes Versions Excel
                             "xlp-" :constants-prefix "xlc-")
   (setq xl_wks (vlax-get xl "Workbooks"))
   ;Ouvrir le fichier test.xls sur la racine du c, ou sinon, l'active dans Excel
   (setq xl_fichier (xl-open xl_wks "T:\\Export\\Test.xls"))
   ;(setq xl_fichier (xl-open xl_wks "T:\\Export\\Test.xls"))							;;Pour Tester le sous-Fonction
   ;Rendre Excel visible
   (vla-put-visible xl 1)
   )

Posté(e)

Salut

A te lire sans tester, je pense avoir trouvé l'erreur

 

 (vlax-import-type-library :tlb-filename Chemin_Excel :methods-prefix "xl-" :properties-prefix [surligneur][b];;Pour Toutes Versions Excel[/b][/surligneur] 
"xlp-" :constants-prefix "xlc-")

Je pense que ce qui est souligné est mal placé

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

j'ai testé cette partie du programme ( Liaison_Xl) indépendamment du reste du programme en faisant appel directement à la fonction et faisant appel au fichier Test.xls. Et ça marche. De même l'autre partie de programme (Export_Xl) marche aussi séparement de l'autre programme. C'est quand je fait la liaison que ça ne marche pas.

Posté(e)

Salut

J'ai regardé ton code de plus près et je l'ai remanié, notamment au niveau des parenthèses. Comme je ne possède pas ton environnement, je n'ai pas pu le tester, mais ça devrait fonctionner

 

;;Pour activer les fonctions visual-lisp
(vl-load-com)

;; --------------------------------------------------------------------------- ---------------------------------------------
;; Programme principale pour l'exportation d'attributs de blocs
;; --------------------------------------------------------------------------- ---------------------------------------------
(defun c:Export_XL (/ OldCmd dcl_id)

;; Fonction pour Saisie du nom et chemin du fichier xls
..(defun saisie ()
....(setq nom (getfiled "Nom du fichier excel à créer" "T:\\Export\\" "xls" 1))
....(set_tile "montexte" nom)
..)
;; Fonction pour Récupération des informations de la boite DCL
..(defun do_accept ()
....(setq EXPORT (get_tile "export"))
;   (alert nom) ;; pour débug afficher la valeur récupérée
....(if (= nom "")
......(alert "Saisissez le nom et le chemin du fichier d'exportation")
......(done_dialog 2)
....)
..)
;; --------------------------------------------------------------------------- ---------------------------------------------
;; Fonction pour Affichage de la boite de dialogue d'aide Fct Export
..(defun helpexpt ()
....(new_dialog "helpexpt" dcl_id)
....(setq x (dimx_tile "logo")
............y (dimy_tile "logo"))
....(start_image "logo")
....(fill_image 0 0 x y -2)
....(slide_image 0 0 x y "ERAS")
....(end_image)
....(start_dialog)
..)

..(setq OldCmd (getvar "CMDECHO")
..........dcl_id (load_dialog "ERAS-EL.dcl"))
..(setq nom "")
..(setvar "CMDECHO" 0)
;; Création de la boite
..(new_dialog "export" dcl_id)
;; Fonction d'appel en retour
..(action_tile "about" "(c:about)")
..(action_tile "helpexpt" "(helpexpt)")
..(action_tile "cancel" "(done_dialog 0)")
..(action_tile "accept" "(do_accept)")
..(action_tile "saisie" "(saisie)")
..(action_tile "Ouverture" "(setq Ouverture $value)")
;; Affichage de la boite
..(setq What_next (start_dialog))
..(if (= What_next 2)
....(progn ;; Exportation des attributs
......(if (= EXPORT "Filerie")
........(command
.........."-eattext" "dwgCourant" "Non" "Non"
.........."w:\\technique\\autocad\\Symboles DAO 2003\\REPERE FIL CABLE\\FIL.blk" "Xls"
..........nom)
......)
......(if (= EXPORT "Cable")
........(command
.........."-eattext" "dwgCourant" "Non" "Non"
.........."w:\\technique\\autocad\\Symboles DAO 2003\\REPERE FIL CABLE\\CAB.blk" "Xls"
..........nom)
......)
....)
..[surligneur][b]) ;; Ajoutée[/b][/surligneur] 
..(setvar "CMDECHO" OldCmd)[surligneur][b]  ;; ) Enlevée[/b][/surligneur] 
;; Déchargement de la boite
..(unload_dialog dcl_id)
;; Ouverture du fichier
..(if (= "1" (get_tile "Ouverture"))
....(Liaison_Xl)[surligneur][b] ;; ) Enlevée[/b][/surligneur]
..)
[surligneur][b]) ;; Ajoutée[/b][/surligneur]

 

ps : chaque . représente un espace. C'est une manière de représenter le code afin qu'il soit plus facilement lisible, compréhensible et "débbugable"

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é