diff --git a/src/param/param-values.ts b/src/param/param-values.ts
index d4e55170651879ea2e4e7a56ffe285d03e1a3a33..62d132ba666f730aec92977eab55e5a1f088b545 100644
--- a/src/param/param-values.ts
+++ b/src/param/param-values.ts
@@ -51,6 +51,7 @@ export class ParamValueIterator implements IterableIterator<number> {
     private _config: number;
 
     constructor(prm: ParamValues, reverse: boolean = false) {
+        prm.check();
         this._param = prm;
         this.reset(reverse)
     }
@@ -246,6 +247,37 @@ export class ParamValues {
             throw new Error(`ParamValues : mode de valeurs ${ParamValueMode[expected]} incorrect`);
     }
 
+    public check() {
+        switch (this._valueMode) {
+            case ParamValueMode.SINGLE:
+                if (!this._singleValue.isDefined)
+                    throw new Error(`ParamValues : valeur fixe non définie`);
+                break;
+
+            case ParamValueMode.MINMAX:
+                if (this._minValue == undefined)
+                    throw new Error(`ParamValues : valeur min non définie`);
+                if (this._maxValue == undefined)
+                    throw new Error(`ParamValues : valeur max non définie`);
+                if (this._stepValue == undefined)
+                    throw new Error(`ParamValues : valeur du pas non définie`);
+                if (this._minValue > this._maxValue)
+                    throw new Error(`ParamValues : min > max`);
+                break;
+
+            case ParamValueMode.LISTE:
+                if (this._valueList == undefined)
+                    throw new Error(`ParamValues : liste de valeurs non définie`);
+                break;
+
+            case ParamValueMode.CALCUL:
+                break;
+
+            default:
+                throw new Error(`ParamValues : mode de valeurs ${ParamValueMode[this._valueMode]} incorrect`);
+        }
+    }
+
     public get singleValue() {
         return this._singleValue.value;
     }