diff --git a/bowiedocs/docs/1._Pogues/Le VTL dans Pogues/vtl.md b/bowiedocs/docs/1._Pogues/Le VTL dans Pogues/vtl.md
index 007dabe2..02f2869c 100644
--- a/bowiedocs/docs/1._Pogues/Le VTL dans Pogues/vtl.md
+++ b/bowiedocs/docs/1._Pogues/Le VTL dans Pogues/vtl.md
@@ -384,79 +384,43 @@ match_characters(
On se place dans le cas où le Siret est collecté à travers la variable `SIRET`. Le contrôle est alors :
-```
-mod(
-cast(substr($SIRET$, 1, 1), integer) +
-(
- if cast(substr($SIRET$, 2, 1), integer) > 4
- then cast(substr($SIRET$, 2, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 2, 1), integer) * 2
-) +
-cast(substr($SIRET$, 3, 1), integer) +
-(
- if cast(substr($SIRET$, 4, 1), integer) > 4
- then cast(substr($SIRET$, 4, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 4, 1), integer) * 2
-) +
-cast(substr($SIRET$, 5, 1), integer) +
-(
- if cast(substr($SIRET$, 6, 1), integer) > 4
- then cast(substr($SIRET$, 6, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 6, 1), integer) * 2
-) +
-cast(substr($SIRET$, 7, 1), integer) +
-(
- if cast(substr($SIRET$, 8, 1), integer) > 4
- then cast(substr($SIRET$, 8, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 8, 1), integer) * 2
-) +
-cast(substr($SIRET$, 9, 1), integer)
-, 10) = 0
-and
-mod(
-(
- if cast(substr($SIRET$, 1, 1), integer) > 4
- then cast(substr($SIRET$, 1, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 1, 1), integer) * 2
-) +
-cast(substr($SIRET$, 2, 1), integer) +
-(
- if cast(substr($SIRET$, 3, 1), integer) > 4
- then cast(substr($SIRET$, 3, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 3, 1), integer) * 2
-) +
-cast(substr($SIRET$, 4, 1), integer) +
-(
- if cast(substr($SIRET$, 5, 1), integer) > 4
- then cast(substr($SIRET$, 5, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 5, 1), integer) * 2
-) +
-cast(substr($SIRET$, 6, 1), integer) +
-(
- if cast(substr($SIRET$, 7, 1), integer) > 4
- then cast(substr($SIRET$, 7, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 7, 1), integer) * 2
-) +
-cast(substr($SIRET$, 8, 1), integer) +
-(
- if cast(substr($SIRET$, 9, 1), integer) > 4
- then cast(substr($SIRET$, 9, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 9, 1), integer) * 2
-) +
-cast(substr($SIRET$, 10, 1), integer) +
-(
- if cast(substr($SIRET$, 11, 1), integer) > 4
- then cast(substr($SIRET$, 11, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 11, 1), integer) * 2
-) +
-cast(substr($SIRET$, 12, 1), integer) +
-(
- if cast(substr($SIRET$, 13, 1), integer) > 4
- then cast(substr($SIRET$, 13, 1), integer) * 2 - 9
- else cast(substr($SIRET$, 13, 1), integer) * 2
-) +
-cast(substr($SIRET$, 14, 1), integer)
-, 10) <> 0
-```
-
-La première partie du contrôle s'assure que les 9 premiers chiffres forment un SIREN valide, la seconde que le SIRET est valide.
+??? tip "Code VTL pour le contrôle du Siret"
+ ```
+ match_characters($SIRET$,"^[0-9]{14}$")
+ and ((mod(
+ cast(substr($SIRET$,1,1),integer)
+ + cast(substr($SIRET$,2,1),integer)*2 -(if (cast(substr($SIRET$,2,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,3,1),integer)
+ + cast(substr($SIRET$,4,1),integer)*2 -(if (cast(substr($SIRET$,4,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,5,1),integer)
+ + cast(substr($SIRET$,6,1),integer)*2 -(if (cast(substr($SIRET$,6,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,7,1),integer)
+ + cast(substr($SIRET$,8,1),integer)*2 -(if (cast(substr($SIRET$,8,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,9,1),integer)
+ ,10)) = 0)
+ and ((mod(
+ cast(substr($SIRET$,1,1),integer)*2 -(if (cast(substr($SIRET$,1,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,2,1),integer)
+ + cast(substr($SIRET$,3,1),integer)*2 -(if (cast(substr($SIRET$,3,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,4,1),integer)
+ + cast(substr($SIRET$,5,1),integer)*2 -(if (cast(substr($SIRET$,5,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,6,1),integer)
+ + cast(substr($SIRET$,7,1),integer)*2 -(if (cast(substr($SIRET$,7,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,8,1),integer)
+ + cast(substr($SIRET$,9,1),integer)*2 -(if (cast(substr($SIRET$,9,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,10,1),integer)
+ + cast(substr($SIRET$,11,1),integer)*2 -(if (cast(substr($SIRET$,11,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,12,1),integer)
+ + cast(substr($SIRET$,13,1),integer)*2 -(if (cast(substr($SIRET$,13,1),integer) > 4) then 9 else 0)
+ + cast(substr($SIRET$,14,1),integer)
+ ,10)) <> 0)
+ ```
+ __Explication du code__
+
+ 1. On vérifie que l'on a une chaîne de 14 chiffres
+ 2. On fait une grosse addition dont on vérifie si elle est égale à 0 modulo 10
+ 3. On a une action caractère par caractère : On regarde le chiffre et selon sa position, on le multiplie par 1 ou 2 ; lorsqu'on le multiplie par 2, si ça atteint ou dépasse 10, on enlève 9
+ *ex :* `7*2` donne `1+4 (formule de Luhn) = 14-9 (formule calculée ici)`
+
+ - La première partie du contrôle s'assure que les 9 premiers chiffres forment un SIREN valide.
+ - La seconde que le SIRET est valide.
\ No newline at end of file