diff --git a/src/app/util.ts b/src/app/util.ts
index a8fbfd5723fa756d191d574510cf9c183af16267..f4a315c757893052b55945bb875d07959c28371d 100644
--- a/src/app/util.ts
+++ b/src/app/util.ts
@@ -1,7 +1,7 @@
 import { NgParameter } from "./formulaire/elements/ngparam";
 import { ServiceFactory } from "./services/service-factory";
 
-import { formattedValue } from "jalhyd";
+import { formattedValue, Nub, ParamDefinition, ParamValues } from "jalhyd";
 
 export function logObject(obj: {}, m?: string) {
     // évite le message "Value below was evaluated just now" dans le debugger de Chrome
@@ -48,20 +48,26 @@ export function decodeHtml(html: string): string {
  * @param varParams
  */
 export function longestVarParam(varParams: NgParameter[]): { param: NgParameter, index: number, size: number } {
-    let i = 0;
-    let longest = 0;
-    let size = 0;
-    for (const v of varParams) {
-        const s = v.valuesIterator.count();
-        if (s > size) {
-            size = s;
-            longest = i;
+    const variated: { param: ParamDefinition, values: ParamValues }[] = [];
+    for (const vp of varParams) {
+        variated.push({
+            param: vp.paramDefinition,
+            values: vp.paramDefinition.paramValues
+        });
+    }
+    const { size, longest, minLinkedResultParam } = Nub.findVariatedSize(variated);
+    let realSize = size;
+    // if at least one linked variated result was found
+    if (minLinkedResultParam !== undefined) {
+        // if the size limited by linked variated results is shorter
+        // than the size of the longest variating element, limit it
+        if (minLinkedResultParam.values.valuesIterator.count() < realSize) {
+            realSize = minLinkedResultParam.values.valuesIterator.count();
         }
-        i++;
     }
     return {
         param: varParams[longest],
         index: longest,
-        size: size
+        size: realSize
     };
 }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 89299e905e34a05ab622ab2e235644fb14677939..90fafec0d23ab1cd7162a0adf7c5f7f52c82c058 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -510,5 +510,6 @@
     "WARNING_SECTION_OVERFLOW": "Overflow: water elevation exceeds embankment elevation",
     "WARNING_SECTION_OVERFLOW_ABSC": "Overflow: water elevation exceeds embankment elevation between abscissae %xa% et %xb%",
     "WARNING_SESSION_LOAD_NOTES_MERGED": "Notes have been merged",
-    "WARNING_VALUE_ROUNDED_TO_INTEGER": "Value of %symbol% was rounded to %rounded%"
+    "WARNING_VALUE_ROUNDED_TO_INTEGER": "Value of %symbol% was rounded to %rounded%",
+    "WARNING_VARIATED_LENGTH_LIMITED_BY_LINKED_RESULT": "Number of results is limited by linked result %symbol%"
 }
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index b9c0993eead0be88891b6d6a105045feb2bc9348..db945e3145fcb22c883d51f7848061fd7d9877bb 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -509,5 +509,6 @@
     "WARNING_SECTION_OVERFLOW": "Débordement: la cote de l'eau dépasse la cote de berge",
     "WARNING_SECTION_OVERFLOW_ABSC": "Débordement: la cote de l'eau dépasse la cote de berge entre les abscisses %xa% et %xb%",
     "WARNING_SESSION_LOAD_NOTES_MERGED": "Les notes ont été fusionnées",
-    "WARNING_VALUE_ROUNDED_TO_INTEGER": "La valeur de %symbol% a été arrondie à %rounded%"
+    "WARNING_VALUE_ROUNDED_TO_INTEGER": "La valeur de %symbol% a été arrondie à %rounded%",
+    "WARNING_VARIATED_LENGTH_LIMITED_BY_LINKED_RESULT": "Le nombre de résultats est limité par le résultat lié %symbol%"
 }