Merci Pour cette réponse rapide ! Je suis aller fouiner du coté des expressions DIESEL et j'ai trouvé des petites choses qui me seront bien utiles, donc merci pour le conseil :) Notamment CTAB pour récupérer le nom de l'onglet et l'afficher dans un bloc. Et ça c'est cool quand on a à écrire le nom de la présentation qu'une seule fois. Car oui, mes onglets sont nommés avec des petits nom bien à moi et non avec 01, 02, 03 ... Je sais que ce mode de fonctionnement en fait hurler certains ... mais à chacun sa façon de travailler ;) Puisqu'on parle des champs avec expression DIESEL voici quelques problèmes dont je cherche la solution en ce moment : - A : Récupérer dans un champs le nombre d'onglet (Pb de pagination). J'en suis à une solution de ce type : $(getvar,NbrPage) avec NbrPage défini en LISP par (setq NbrPage (length (layoutlist))) mais je n'arrive pas encore à créer un LISP qui calcule NbrPage puis lance la mise à jour des champs avec la prise en compte des variables définies en amont. - B : Récupérer dans un champs la position de l'onglet par rapport aux autres (tj pb de pagination). Et là je ne connais pas encore assez bien la gestion des onglets et la façon dont ils sont définis dans Autocad pour savoir si c'est possible. - C : Récupérer dans un champs (lui même dans un bloc) la valeur d'un champs qui se trouve dans un autre bloc ... sorte de champ-ception ... mais là je n'ai pas encore commencé à chercher !! Pour en revenir à mon problème initial : L'idée est de pouvoir cibler précisément un attribut et en changer sa valeur. Je pars aujourd'hui de l'hypothèse que le bloc qui contient cet attribut est unique dans la présentation (par la suite je me poserai le problème de la multiplicité de ce bloc). Pour modifier les valeurs d'un bloc dynamique depuis une application excel j'avais écrit ceci (à titre d'exemple) : VBA ********************************************************************************** Set blockRefObj = MonPlan.ModelSpace.InsertBlock(insertionPnt, CheminBloc, 1, 1, 1, 0) varPropDyn = blockRefObj.GetDynamicBlockProperties For i = LBound(varPropDyn) To UBound(varPropDyn) If varPropDyn(i).PropertyName = "L1X" Then varPropDyn(i).Value = L1X If varPropDyn(i).PropertyName = "L2X" Then varPropDyn(i).Value = L2X If varPropDyn(i).PropertyName = "L1Y" Then varPropDyn(i).Value = L1Y If varPropDyn(i).PropertyName = "L2Y" Then varPropDyn(i).Value = L2Y [...] ********************************************************************************** VBA Je me demande s'il est possible d'avoir une approche similaire en LISP ou si je suis complètement à côté de la plaque avec ce mode de fonctionnement ... D'après ce que j'ai compris des formules DIESEL, leur utilisation supposerai que le champs concerné soit toujours remplis par le même calcul (la même expression DIESEL) or je veux pouvoir donner à l'attribut une valeur dont la méthode de calcul change ... Et j'en suis arriver à la conclusion que trouver une solution à mon pb A cité plus haut pourrait m'aider dans ma quête !! Je ne sais pas si je me fait comprendre ... En tous cas, merci encore pour votre première réponse et espérant que vous pourrez m'aider d'avantage :)