diff --git a/models/scop_partner_staff.py b/models/scop_partner_staff.py
index 92aa528f63c47a9dd626a7602018f7ee69d8933f..99504a2205f51717a8ac405532a33e94dfd89074 100644
--- a/models/scop_partner_staff.py
+++ b/models/scop_partner_staff.py
@@ -139,49 +139,51 @@ class ScopPartnerStaff(models.Model):
     # ------------------------------------------------------
     # Contrains
     # ------------------------------------------------------
-    @api.constrains("staff_count", "staff_shareholder_count", "staff_average")
+    @api.constrains('cooperative_form_id',
+                    'type_entry',
+                    'staff_count',
+                    'staff_shareholder_count',
+                    'staff_average')
     def _check_staff(self):
         """
-        Interdit de créer une ligne à 0 sauf lorsque
-        cette ligne vient de la liste ministère
-        ou si ligne associés / ETP pour les SCIC
-        ou si ligne ETP pour les 'tracked naf'
+            Règles spécifiques pour les effectifs
         """
-        if self.type_entry not in (
-            "questionnaire",
-            "questionnaire_inscription",
-        ):
-            if (
-                self.cooperative_form_id.id
-                == self.env.ref("cgscop_partner.form_scic").id
-            ):
-                if self.staff_count == 0:
+        scic = self.env.ref('cgscop_partner.form_scic').id
+        scop = self.env.ref('cgscop_partner.form_scop').id
+
+        def check_staff_shareholder():
+            # Effectif total >= effectif sociétaires
+            if self.staff_shareholder_count > 0:
+                if not self.staff_count >= self.staff_shareholder_count:
+                    raise ValidationError(
+                        "L'effectif total doit être supérieur ou égal au nombre de sociétaires salariés")
+
+        def check_staff_average():
+            if self.staff_average > 0:
+                if not self.staff_count >= self.staff_average:
                     raise ValidationError(
-                        _(
-                            "La colonne Effectif (EF) doit être renseignée"
-                            " et supérieurs à 0."
-                        )
-                    )
-            elif self.is_partner_in_tracked_naf:
-                if self.staff_count == 0 or self.staff_shareholder_count == 0:
+                        "L'effectif total doit être supérieur ou égal au nombre d'équivalent temps plein")
+
+        # Les règles ne s'appliquent pas pour les entrées LM / Questionnaire
+        if self.type_entry not in ('questionnaire', 'questionnaire_inscription'):
+            # Règles pour les SCIC
+            if self.cooperative_form_id.id == scic:
+                check_staff_shareholder()
+                check_staff_average()
+            # Règles pour les SCOP
+            elif self.cooperative_form_id.id == scop:
+                # Effectif total non nul
+                if self.staff_count == 0:
                     raise ValidationError(
-                        _(
-                            "Les colonnes Effectif (EF) et Nb Sociétaires Salarié"
-                            " doivent être renseignés et supérieurs à 0."
-                        )
-                    )
-            else:
-                if (
-                    self.staff_shareholder_count == 0
-                    or self.cooperative_form_id == 0
-                    or self.staff_average == 0
-                ):
+                        "L'effectif total doit être supérieur ou égal à 0 pour cette copérative de type SCOP")
+                check_staff_shareholder()
+                check_staff_average()
+
+            # Règles sprécifiques pour les NAF suivis
+            if self.is_partner_in_tracked_naf:
+                if self.staff_average == 0:
                     raise ValidationError(
-                        _(
-                            "Tous les effectifs doivent"
-                            " être renseignés et supérieurs à 0."
-                        )
-                    )
+                        "Le nombre d'équivalent temps plein doit être renseigné pour cette coopérative")
 
     @api.constrains("effective_date")
     def _check_effective_date(self):
diff --git a/views/res_partner.xml b/views/res_partner.xml
index ff3b19dcfad42bb4d2d557bb73137ca456596d35..253e567fc2405130ac3a4b6ec3f555ff20941f67 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -1555,7 +1555,7 @@
                                 />
                                 <field
                                     name="staff_shareholder_count"
-                                    attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"
+                                    attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"
                                 />
                                 <field
                                     name="staff_shareholder_total"
@@ -1563,7 +1563,7 @@
                                 />
                                 <field
                                     name="staff_average"
-                                    attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '!=', True), ('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"
+                                    attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}"
                                 />
                                 <field name="comment" />
                                 <field name="user_id" readonly="1" />
diff --git a/views/scop_partner_staff.xml b/views/scop_partner_staff.xml
index 2b4b6fea10f6adc00102aa5cdcb91be5c5535f0e..1c2afd3acf297ede573b3e887b04a3d8b8831621 100644
--- a/views/scop_partner_staff.xml
+++ b/views/scop_partner_staff.xml
@@ -37,7 +37,7 @@
                                 />
                                 <field
                                     name="staff_shareholder_count"
-                                    attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('cooperative_form_id', '!=', %(cgscop_partner.form_scic)d)]}"
+                                    attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}"
                                 />
                                 <field
                                     name="staff_shareholder_total"
@@ -45,7 +45,7 @@
                                 />
                                 <field
                                     name="staff_average"
-                                    attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '!=', True)]}"
+                                    attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}"
                                 />
                             </group>
                             <group name="staff_stats">