diff --git a/src/app/formulaire/elements/select/select-field-factory.ts b/src/app/formulaire/elements/select/select-field-factory.ts
index afb4246e01c12c991552a742e86f31ca9495954c..68a9fae0fb596a02f2bbe47f95b0ee8e2b7f2c01 100644
--- a/src/app/formulaire/elements/select/select-field-factory.ts
+++ b/src/app/formulaire/elements/select/select-field-factory.ts
@@ -11,6 +11,7 @@ import { SelectFieldSearchedParam } from "./select-field-searched-param";
 import { SelectFieldSpeciesList } from "./select-field-species-list";
 import { SelectFieldTargetPass } from "./select-field-target-pass";
 import { SelectFieldNubProperty } from "./select-field-nub-prop";
+import { SelectFieldTargetPam } from "./select-field-target-pam";
 
 export class SelectFieldFactory {
     /**
@@ -57,6 +58,9 @@ export class SelectFieldFactory {
             case "select_upstream_basin":
                 return new SelectFieldUpstreamBasin(parent);
 
+            case "select_target_pam":
+                return new SelectFieldTargetPam(parent);
+
             case "select_divingjetsupported":
             case "select_gridprofile":
             case "select_gridtype":
diff --git a/src/app/formulaire/elements/select/select-field-target-pam.ts b/src/app/formulaire/elements/select/select-field-target-pam.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9970670afd9c20a6c9d43c755817bf96a51ed6d2
--- /dev/null
+++ b/src/app/formulaire/elements/select/select-field-target-pam.ts
@@ -0,0 +1,39 @@
+import { ServiceFactory } from "app/services/service-factory";
+import { decodeHtml } from "../../../util/util";
+import { CalculatorType, MacroRugoRemous } from "jalhyd";
+import { SelectField } from "./select-field";
+import { FormulaireNode } from "../formulaire-node";
+
+// Courbe de remous dans une passe à macro-rugo.
+export class SelectFieldTargetPam extends SelectField {
+    constructor(parent: FormulaireNode) {
+        super(parent);
+        this._associatedProperty = "nubMacroRugo";
+    }
+
+    protected populate() {
+
+        const fs = ServiceFactory.formulaireService;
+
+        // find all rock-ramp fishpass forms
+        const macroForms: any[] = fs.formulaires.filter((element, index, self) =>
+            element.calculatorType === CalculatorType.MacroRugo
+        );
+        for (const cn of macroForms) {
+            const calc = cn.calculatorName;
+            this.addEntry(this.createOrGetEntry(this._entriesBaseId + cn.uid, cn.uid, decodeHtml(calc)));
+        }
+    }
+
+    protected initSelectedValue() {
+        const mrr = (this.nub as MacroRugoRemous).nubMacroRugo;
+        if (mrr !== undefined) {
+            this.setValueFromId(this._entriesBaseId + mrr.uid);
+        }
+    }
+
+    public updateLocalisation() {
+        // do not override localisation done in populate()
+        // ie. avoid what is done by SelectField.updateLocalisation()
+    }
+}