Salut, Petits rappels. En LISP toute expression retourne une valeur. Un appel de la fonction setq retourne la valeur de l'évaluation de la dernière expression, dans ton cas, le résultat de l'évaluation de l'expression : (vlax-ldata-get "DenisH" "Ech") Autrement dit : (setq ech (vlax-ldata-get "DenisH" "Ech")) retourne la même chose que : (vlax-ldata-get "DenisH" "Ech") Qui correspond à la valeur de : ech En LISP, une condition (telle que requise par if, cond, etc.) est considérée comme "vraie" tant qu'elle n'est pas nil (T n'est qu'un cas particulier pour "vrai"). LISP est défini récursivement : une expression LISP est un atome ou une liste d'expressions LISP. On perçoit bien là comment LISP rime avec imbrication, mais ça n'est pas une "norme" on peut préférer écrire un style plus séquentiel/procédural ou se noyer dans les parenthèses : (princ
(if (setq ech (vlax-ldata-get "DenisH" "Ech"))
"\nEchelle connue"
"\nEchelle inconnue"
)
)