# La fonction (tblnext) pour parcourir les tables en AutoLISP

**URL:** https://dessein-tech.com/t/la-fonction-tblnext-pour-parcourir-les-tables-en-autolisp/9665
**Category:** AutoLISP
**Tags:** debutant, lisp, programmation, tuto
**Created:** 2026-01-18T02:42:45Z
**Posts:** 1

## Post 1 by @Patrick — 2026-01-18T02:42:45Z

Si ([tblsearch](https://dessein-tech.com/t/la-fonction-tblsearch-autolisp-est-fondamentale-pour-ecrire-des-programmes-intelligents-qui-ne-plantent-pas/9664)) était le bibliothécaire qui cherche un livre précis, `(tblnext)` est le **DJ de la soirée**.

 ![tutoriel_debutants_autolisp_autocad](https://dessein-tech.com/uploads/default/original/2X/f/f408190a8abcde1757498ebd5d4884096d452268.jpeg)

Il ne cherche pas un titre précis, il joue simplement la liste de lecture, morceau après morceau, jusqu’à la fin.

### 1. Le Concept : «&nbsp;Au Suivant !&nbsp;»

`(tblnext)` signifie littéralement **«&nbsp;Table Next&nbsp;»** (Table Suivante).

Son boulot est simple : il plonge dans une armoire (Calques, Blocs, Styles…) et vous ramène les objets **un par un**.

- Premier appel : «&nbsp;Tiens, voici le 1er calque.&nbsp;»

- Deuxième appel : «&nbsp;Tiens, voici le 2ème calque.&nbsp;»

- …

- Quand il n’y a plus rien : Il répond `nil` (C’est fini !).

### 2. La Syntaxe (et le bouton «&nbsp;Rembobiner&nbsp;»)

C’est la subtilité à retenir pour ne pas se faire piéger.

```
(tblnext "NOM_TABLE" [Rembobiner])
```

- **Argument 1** : L’armoire («&nbsp;LAYER&nbsp;», «&nbsp;BLOCK&nbsp;», «&nbsp;[STYLE](https://help.autodesk.com/view/ACD/2026/FRA/?guid=GUID-F8EA1280-BF0E-4674-ABCF-EEA0D41752D6)&nbsp;»…).

- **Argument 2** : C’est un interrupteur.

- Si vous mettez `T` (True/Vrai) : On **rembobine** au début. On repart du tout premier objet.

- Si vous ne mettez rien (ou `nil`) : On continue et on prend le **suivant**.

### 3. L’Exemple : Le «&nbsp;Dérouleur&nbsp;» de Calques

On va créer une petite commande qui va lister tous les noms des calques de votre dessin dans la ligne de commande.

Pour faire ça, on utilise une boucle `while` (Tant que…).

_Traduction : «&nbsp;Tant que tu trouves un calque, affiche son nom, puis passe au suivant.&nbsp;»_

Copiez ce code et lancez **LISTECALQUES** :

```
(defun c:LISTECALQUES (/ item)
  (prompt "\n--- DÉBUT DE LA LISTE ---")

  ;; ÉTAPE 1 : On initialise.
  ;; On demande le TOUT PREMIER calque en mettant 'T' pour rembobiner.
  (setq item (tblnext "LAYER" T))

  ;; ÉTAPE 2 : La boucle "Tant que..."
  ;; Tant que 'item' n'est pas vide (nil)...
  (while item
    
    ;; On récupère le nom. Le nom est toujours rangé sous le code 2.
    ;; (assoc 2 item) donne (2 . "Mur"), et cdr garde juste "Mur".
    (princ (strcat "\nJ'ai trouvé : " (cdr (assoc 2 item))))

    ;; ÉTAPE 3 : Le passage de témoin.
    ;; On demande le SUIVANT (Notez qu'il n'y a plus le 'T' ici !)
    (setq item (tblnext "LAYER"))
  )
  
  (prompt "\n--- C'EST FINI ! ---")
  (princ)
)
```

### 4. Résumé pour briller à la machine à café

1. Utilisez `(tblnext "LAYER" T)` pour démarrer la lecture au début.

2. Utilisez `(tblnext "LAYER")` (sans le T) à l’intérieur d’une boucle pour avancer pas à pas.

3. Quand la fonction renvoie `nil`, c’est que vous avez tout lu !

C’est l’outil de base pour créer des listes déroulantes ou traiter des lots d’objets.

_Poll: Poll (view on site)_

:right_arrow: Tous les [tutos AutoLISP](https://go.dessein-tech.com/tutos-autolisp)
