Merci Bonuscad Effectivement ca marche beaucoup mieux comme ca !! J'ai complete le programme pour avoir aussi le nom du fichier dans un attribut FICHIER. Ca donne ca : (defun DATEO () (menucmd "M=$(edtime,$(getvar,date),DD/MO/YY)") ) (defun c:MAJATT ( / AncVal LstEnt NomEnt) (setq NomEnt (entnext)) (while NomEnt (setq LstEnt (entget NomEnt)) (if (member '(0 . "ATTRIB") LstEnt) (cond ((member '(2 . "DATEO") LstEnt) (setq AncVal (cdr (assoc 1 LstEnt))) (setq LstEnt (subst (cons 1 (DATEO)) (cons 1 AncVal) LstEnt)) (entmod LstEnt) (entupd NomEnt) ) ((member '(2 . "NOM2") LstEnt) (setq AncVal (cdr (assoc 1 LstEnt))) (setq LstEnt (subst (cons 1 (getvar "loginname")) (cons 1 AncVal) LstEnt)) (entmod LstEnt) (entupd NomEnt) ) ((member '(2 . "FICHIER") LstEnt) (setq AncVal (cdr (assoc 1 LstEnt))) (setq LstEnt (subst (cons 1 (getvar "dwgname")) (cons 1 AncVal) LstEnt)) (entmod LstEnt) (entupd NomEnt) ) ;;Autant de condition que l'on veut ici ;; sous la forme ;; ((condition vrai) ici member ;; (subst)(entmod)(entupd) ;; ) ) ) (setq NomEnt (entnext NomEnt)) ) (princ) ) Maintenant j'aimerais avoir le chemin qui s'affiche avant le nom du fichier mais visiblement j'ai un probleme de syntaxe quand je remplace la ligne (setq LstEnt (subst (cons 1 (getvar "dwgname")) (cons 1 AncVal) LstEnt)) par (setq LstEnt (subst (cons 1 (strcat (getvar "dwgprefix") (getvar "dwgname"))) (cons 1 AncVal) LstEnt)) Cherchez l'erreur ...