Bonjour à toi lispienne / lispien, J'ai une chaîne de caractères qui contient une phrase. Ce que je fais c'est écrire sur autoCAD, avec la commande texte, la chaîne de caractères. De plus si cette chaîne contient plus de 42 caractères je la sépare en deux pour l'écrire sur deux lignes. Jusque là tout va bien. MAIS ce que je voudrais c'est éviter de couper un mot en deux ! Eh oui si le 42ème caractère est au milieu d'un mot et ben mon programme ne se pose pas de question ( ilne peut pas en fait :D ) il coupe le mot en deux. J'en suis là : (setq cpt 42) (if (> (strlen element) cpt) ; si le contenu de element est supérieur à 42 caractères alors ... (progn (setq PART1 (substr element 1 cpt)) ;Part1 est égal aux 42 premiers caractères de element (setq PART2 (substr element (+ cpt 1)));Part2 est égal aux caractères restant de element (command "texte" displign1 "0" PART1); on écrit le contenu de PART1 (command "texte" displign2 "0" PART2);on écrit le contenu de PART2 ) (command "texte" pt4 "0" element); sinon on écrit le contenu de element ) J'avais pensé à faire quelque chose comme : si le caractère 42 est différent de " " alors on décale vers la gauche jusqu’à trouver un espace. on compte le nombre de fois qu'on a bougé vers la gauche et on soustrait cette valeur à cpt). Le truc c'est que je n'arrive pas à décaler vers la gauche comme je veux. Donc je viens vers vous pour m'aider à trouver une solution pour mon problème s'il vous plaît. P.S. : J'aimerai autant que possible éviter d'avoir des réponses à base de fonctions vla- vlax- vl- car je ne maîtrise pas du tout et j'aimerai, si on me le demande, pouvoir expliquer à autrui ce que fait le programme plutôt que de dire "ah ça je ne sais pas j'ai vu ça sur internet". Axel